index.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import MemoryFileBackend from './memory.js';
  2. import DiskFileBackend from './disk.js';
  3. import S3FileBackend from './s3.js';
  4. export { default as MemoryFileBackend } from './memory.js';
  5. export { default as DiskFileBackend } from './disk.js';
  6. export { default as S3FileBackend } from './s3.js';
  7. export const getFileStoreBackend = (type, backendConfig) => {
  8. switch (type) {
  9. case 's3':
  10. return S3FileBackend(backendConfig);
  11. case 'disk':
  12. return DiskFileBackend(backendConfig);
  13. default:
  14. return MemoryFileBackend(backendConfig);
  15. }
  16. };
  17. export const wrapBackend = (backend, siteId) => {
  18. return {
  19. async store(boxId, resourceId, file) {
  20. return await backend.store(siteId, boxId, resourceId, file);
  21. },
  22. async list(boxId, resourceId) {
  23. return await backend.list(siteId, boxId, resourceId);
  24. },
  25. async exists(boxId, resourceId, filename) {
  26. return await backend.exists(siteId, boxId, resourceId, filename);
  27. },
  28. async get(boxId, resourceId, filename, headers) {
  29. return await backend.get(siteId, boxId, resourceId, filename, headers);
  30. },
  31. async delete(boxId, resourceId, filename) {
  32. return await backend.delete(siteId, boxId, resourceId, filename);
  33. },
  34. };
  35. };