@webiny/api-file-manager-s3 5.17.4-beta.1 → 5.18.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +1 -2
- package/package.json +7 -7
- package/plugins/fileStorageS3.js +1 -2
- package/plugins/graphqlFileStorageS3.js +3 -4
- package/types.js +1 -2
- package/utils/getPresignedPostPayload.js +1 -2
- package/utils/uploadFileToS3.js +1 -2
- package/index.js.map +0 -1
- package/plugins/fileStorageS3.js.map +0 -1
- package/plugins/graphqlFileStorageS3.js.map +0 -1
- package/types.js.map +0 -1
- package/utils/getPresignedPostPayload.js.map +0 -1
- package/utils/uploadFileToS3.js.map +0 -1
package/index.js
CHANGED
|
@@ -13,5 +13,4 @@ var _fileStorageS = _interopRequireDefault(require("./plugins/fileStorageS3"));
|
|
|
13
13
|
|
|
14
14
|
var _default = () => [(0, _fileStorageS.default)(), _graphqlFileStorageS.default];
|
|
15
15
|
|
|
16
|
-
exports.default = _default;
|
|
17
|
-
//# sourceMappingURL=index.js.map
|
|
16
|
+
exports.default = _default;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-file-manager-s3",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.18.0-beta.2",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
"author": "Webiny Ltd",
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@webiny/api-file-manager": "5.
|
|
14
|
-
"@webiny/handler-graphql": "5.
|
|
15
|
-
"@webiny/validation": "5.
|
|
13
|
+
"@webiny/api-file-manager": "5.18.0-beta.2",
|
|
14
|
+
"@webiny/handler-graphql": "5.18.0-beta.2",
|
|
15
|
+
"@webiny/validation": "5.18.0-beta.2",
|
|
16
16
|
"form-data": "3.0.1",
|
|
17
17
|
"node-fetch": "2.6.6",
|
|
18
18
|
"sanitize-filename": "1.6.3",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@babel/cli": "^7.5.5",
|
|
23
23
|
"@babel/core": "^7.5.5",
|
|
24
|
-
"@webiny/cli": "^5.
|
|
25
|
-
"@webiny/project-utils": "^5.
|
|
24
|
+
"@webiny/cli": "^5.18.0-beta.2",
|
|
25
|
+
"@webiny/project-utils": "^5.18.0-beta.2",
|
|
26
26
|
"rimraf": "^3.0.2",
|
|
27
27
|
"typescript": "^4.1.3"
|
|
28
28
|
},
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"build": "yarn webiny run build",
|
|
35
35
|
"watch": "yarn webiny run watch"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "02bb6242be1f61cbc204aea458fbc9e7c6000fc8"
|
|
38
38
|
}
|
package/plugins/fileStorageS3.js
CHANGED
|
@@ -61,7 +61,7 @@ const plugin = {
|
|
|
61
61
|
`,
|
|
62
62
|
resolvers: {
|
|
63
63
|
FmQuery: {
|
|
64
|
-
getPreSignedPostPayload: async (
|
|
64
|
+
getPreSignedPostPayload: async (_, args, context) => {
|
|
65
65
|
try {
|
|
66
66
|
await (0, _checkBasePermissions.default)(context, {
|
|
67
67
|
rwd: "w"
|
|
@@ -80,7 +80,7 @@ const plugin = {
|
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
},
|
|
83
|
-
getPreSignedPostPayloads: async (
|
|
83
|
+
getPreSignedPostPayloads: async (_, args, context) => {
|
|
84
84
|
await (0, _checkBasePermissions.default)(context, {
|
|
85
85
|
rwd: "w"
|
|
86
86
|
});
|
|
@@ -132,5 +132,4 @@ const plugin = {
|
|
|
132
132
|
}
|
|
133
133
|
};
|
|
134
134
|
var _default = plugin;
|
|
135
|
-
exports.default = _default;
|
|
136
|
-
//# sourceMappingURL=graphqlFileStorageS3.js.map
|
|
135
|
+
exports.default = _default;
|
package/types.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//# sourceMappingURL=types.js.map
|
|
1
|
+
"use strict";
|
package/utils/uploadFileToS3.js
CHANGED
package/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["graphqlFileStorageS3"],"mappings":";;;;;;;;;AAAA;;AACA;;eAEe,MAAM,CAAC,4BAAD,EAAkBA,4BAAlB,C","sourcesContent":["import graphqlFileStorageS3 from \"./plugins/graphqlFileStorageS3\";\nimport fileStorageS3 from \"./plugins/fileStorageS3\";\n\nexport default () => [fileStorageS3(), graphqlFileStorageS3];\n"],"file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/fileStorageS3.ts"],"names":["S3_BUCKET","process","env","FilePhysicalStoragePlugin","upload","args","settings","buffer","data","preSignedPostPayload","file","response","ok","Error","delete","key","s3","S3","deleteObject","Bucket","Key","promise"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;AAEA,MAAMA,SAAS,GAAGC,OAAO,CAACC,GAAR,CAAYF,SAA9B;;eAEe,MAAiC;AAC5C,SAAO,IAAIG,oDAAJ,CAA8B;AACjCC,IAAAA,MAAM,EAAE,MAAMC,IAAN,IAAc;AAClB,YAAM;AAAEC,QAAAA,QAAF;AAAYC,QAAAA;AAAZ,UAAgCF,IAAtC;AAAA,YAA6BG,IAA7B,0CAAsCH,IAAtC;AAEA,YAAM;AAAEG,QAAAA,IAAI,EAAEC,oBAAR;AAA8BC,QAAAA;AAA9B,UAAuC,MAAM,sCAC/CF,IAD+C,EAE/CF,QAF+C,CAAnD;AAKA,YAAMK,QAAQ,GAAG,MAAM,4BAAeJ,MAAf,EAAuBE,oBAAvB,CAAvB;;AACA,UAAI,CAACE,QAAQ,CAACC,EAAd,EAAkB;AACd,cAAMC,KAAK,CAAC,wBAAD,CAAX;AACH;;AAED,aAAO;AACHL,QAAAA,IAAI,EAAEC,oBADH;AAEHC,QAAAA;AAFG,OAAP;AAIH,KAlBgC;AAmBjCI,IAAAA,MAAM,EAAE,MAAMT,IAAN,IAAc;AAClB,YAAM;AAAEU,QAAAA;AAAF,UAAUV,IAAhB;AACA,YAAMW,EAAE,GAAG,IAAIC,UAAJ,EAAX;AAEA,YAAMD,EAAE,CACHE,YADC,CACY;AACVC,QAAAA,MAAM,EAAEnB,SADE;AAEVoB,QAAAA,GAAG,EAAEL;AAFK,OADZ,EAKDM,OALC,EAAN;AAMH;AA7BgC,GAA9B,CAAP;AA+BH,C","sourcesContent":["import S3 from \"aws-sdk/clients/s3\";\nimport getPresignedPostPayload from \"../utils/getPresignedPostPayload\";\nimport uploadFileToS3 from \"../utils/uploadFileToS3\";\nimport { FilePhysicalStoragePlugin } from \"@webiny/api-file-manager/plugins/definitions/FilePhysicalStoragePlugin\";\n\nconst S3_BUCKET = process.env.S3_BUCKET;\n\nexport default (): FilePhysicalStoragePlugin => {\n return new FilePhysicalStoragePlugin({\n upload: async args => {\n const { settings, buffer, ...data } = args;\n\n const { data: preSignedPostPayload, file } = await getPresignedPostPayload(\n data,\n settings\n );\n\n const response = await uploadFileToS3(buffer, preSignedPostPayload);\n if (!response.ok) {\n throw Error(\"Unable to upload file.\");\n }\n\n return {\n data: preSignedPostPayload,\n file\n };\n },\n delete: async args => {\n const { key } = args;\n const s3 = new S3();\n\n await s3\n .deleteObject({\n Bucket: S3_BUCKET,\n Key: key\n })\n .promise();\n }\n });\n};\n"],"file":"fileStorageS3.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/graphqlFileStorageS3.ts"],"names":["BATCH_UPLOAD_MAX_FILES","plugin","type","name","schema","typeDefs","resolvers","FmQuery","getPreSignedPostPayload","root","args","context","rwd","data","settings","fileManager","getSettings","response","Response","e","ErrorResponse","message","code","getPreSignedPostPayloads","files","Array","isArray","length","promises","i","item","push","Promise","all"],"mappings":"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","sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/types\";\nimport { ErrorResponse, Response } from \"@webiny/handler-graphql/responses\";\nimport checkBasePermissions from \"@webiny/api-file-manager/plugins/crud/utils/checkBasePermissions\";\nimport { FileManagerContext } from \"@webiny/api-file-manager/types\";\nimport getPresignedPostPayload from \"../utils/getPresignedPostPayload\";\n\nconst BATCH_UPLOAD_MAX_FILES = 20;\n\nconst plugin: GraphQLSchemaPlugin<FileManagerContext> = {\n type: \"graphql-schema\",\n name: \"graphql-schema-api-file-manager-s3\",\n schema: {\n typeDefs: /* GraphQL */ `\n input PreSignedPostPayloadInput {\n name: String!\n type: String!\n size: Int!\n }\n\n type GetPreSignedPostPayloadResponseDataFile {\n name: String\n type: String\n size: Int\n key: String\n }\n\n type GetPreSignedPostPayloadResponseData {\n # Contains data that is necessary for initiating a file upload.\n data: JSON\n file: UploadFileResponseDataFile\n }\n\n type GetPreSignedPostPayloadResponse {\n error: FileError\n data: GetPreSignedPostPayloadResponseData\n }\n\n type GetPreSignedPostPayloadsResponse {\n error: FileError\n data: [GetPreSignedPostPayloadResponseData]!\n }\n\n extend type FmQuery {\n getPreSignedPostPayload(\n data: PreSignedPostPayloadInput!\n ): GetPreSignedPostPayloadResponse\n getPreSignedPostPayloads(\n data: [PreSignedPostPayloadInput]!\n ): GetPreSignedPostPayloadsResponse\n }\n `,\n resolvers: {\n FmQuery: {\n getPreSignedPostPayload: async (root, args, context) => {\n try {\n await checkBasePermissions(context, { rwd: \"w\" });\n\n const { data } = args;\n const settings = await context.fileManager.settings.getSettings();\n const response = await getPresignedPostPayload(data, settings);\n\n return new Response(response);\n } catch (e) {\n return new ErrorResponse({\n message: e.message,\n code: e.code,\n data: e.data\n });\n }\n },\n getPreSignedPostPayloads: async (root, args, context) => {\n await checkBasePermissions(context, { rwd: \"w\" });\n\n const { data: files } = args;\n if (!Array.isArray(files)) {\n return new ErrorResponse({\n code: \"UPLOAD_FILES_NON_ARRAY\",\n message: `\"data\" argument must be an array.`\n });\n }\n\n if (files.length === 0) {\n return new ErrorResponse({\n code: \"UPLOAD_FILES_MIN_FILES\",\n message: `\"data\" argument must contain at least one file.`\n });\n }\n\n if (files.length > BATCH_UPLOAD_MAX_FILES) {\n return new ErrorResponse({\n code: \"UPLOAD_FILES_MAX_FILES\",\n message: `\"data\" argument must not contain more than ${BATCH_UPLOAD_MAX_FILES} files.`\n });\n }\n\n try {\n const settings = await context.fileManager.settings.getSettings();\n\n const promises = [];\n for (let i = 0; i < files.length; i++) {\n const item = files[i];\n promises.push(getPresignedPostPayload(item, settings));\n }\n\n return new Response(await Promise.all(promises));\n } catch (e) {\n return new ErrorResponse({\n message: e.message,\n code: e.code,\n data: e.data\n });\n }\n }\n }\n }\n }\n};\n\nexport default plugin;\n"],"file":"graphqlFileStorageS3.js"}
|
package/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"types.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/getPresignedPostPayload.ts"],"names":["S3_BUCKET","process","env","UPLOAD_MAX_FILE_SIZE_DEFAULT","sanitizeFileSizeValue","value","defaultValue","validation","validateSync","e","data","settings","type","contentType","Error","key","name","keyPrefix","replace","uploadMinFileSize","uploadMaxFileSize","params","Expires","Bucket","Conditions","Fields","startsWith","substr","s3","S3","payload","createPresignedPost","file","size"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,MAAMA,SAAS,GAAGC,OAAO,CAACC,GAAR,CAAYF,SAA9B;AACA,MAAMG,4BAA4B,GAAG,QAArC,C,CAA+C;;AAE/C,MAAMC,qBAAqB,GAAG,CAACC,KAAD,EAAQC,YAAR,KAAyB;AACnD,MAAI;AACAC,2BAAWC,YAAX,CAAwBH,KAAxB,EAA+B,wBAA/B;;AACA,WAAOA,KAAP;AACH,GAHD,CAGE,OAAOI,CAAP,EAAU;AACR,WAAOH,YAAP;AACH;AACJ,CAPD;;eASe,OAAOI,IAAP,EAAaC,QAAb,KAA0B;AACrC;AACA;AACA,MAAI,CAACD,IAAI,CAACE,IAAV,EAAgB;AACZF,IAAAA,IAAI,CAACE,IAAL,GAAY,0BAAZ;AACH;;AAED,QAAMC,WAAW,GAAGH,IAAI,CAACE,IAAzB;;AACA,MAAI,CAACC,WAAL,EAAkB;AACd,UAAMC,KAAK,CAAE,4CAAF,CAAX;AACH;;AAED,MAAIC,GAAG,GAAG,+BAAiBL,IAAI,CAACM,IAAtB,CAAV;;AACA,MAAID,GAAJ,EAAS;AACLA,IAAAA,GAAG,GAAG,yBAAa,GAAb,GAAmBA,GAAzB;AACH;;AAED,MAAIL,IAAI,CAACO,SAAT,EAAoB;AAChBF,IAAAA,GAAG,GAAI,GAAE,+BAAiBL,IAAI,CAACO,SAAtB,CAAiC,IAAGF,GAAI,EAAjD;AACH,GAnBoC,CAqBrC;;;AACAA,EAAAA,GAAG,GAAGA,GAAG,CAACG,OAAJ,CAAY,KAAZ,EAAmB,EAAnB,CAAN;AAEA,QAAMC,iBAAiB,GAAGf,qBAAqB,CAACO,QAAQ,CAACQ,iBAAV,EAA6B,CAA7B,CAA/C;AACA,QAAMC,iBAAiB,GAAGhB,qBAAqB,CAC3CO,QAAQ,CAACS,iBADkC,EAE3CjB,4BAF2C,CAA/C;AAKA,QAAMkB,MAAM,GAAG;AACXC,IAAAA,OAAO,EAAE,EADE;AAEXC,IAAAA,MAAM,EAAEvB,SAFG;AAGXwB,IAAAA,UAAU,EAAE,CAAC,CAAC,sBAAD,EAAyBL,iBAAzB,EAA4CC,iBAA5C,CAAD,CAHD;AAGmE;AAC9EK,IAAAA,MAAM,EAAE;AACJ,sBAAgBZ,WADZ;AAEJE,MAAAA;AAFI;AAJG,GAAf;;AAUA,MAAIM,MAAM,CAACI,MAAP,CAAcV,GAAd,CAAkBW,UAAlB,CAA6B,GAA7B,CAAJ,EAAuC;AACnCL,IAAAA,MAAM,CAACI,MAAP,CAAcV,GAAd,GAAoBM,MAAM,CAACI,MAAP,CAAcV,GAAd,CAAkBY,MAAlB,CAAyB,CAAzB,CAApB;AACH;;AAED,QAAMC,EAAE,GAAG,IAAIC,UAAJ,EAAX;AACA,QAAMC,OAAO,GAAGF,EAAE,CAACG,mBAAH,CAAuBV,MAAvB,CAAhB;AAEA,SAAO;AACHX,IAAAA,IAAI,EAAEoB,OADH;AAEHE,IAAAA,IAAI,EAAE;AACFhB,MAAAA,IAAI,EAAED,GADJ;AAEFA,MAAAA,GAFE;AAGFH,MAAAA,IAAI,EAAEC,WAHJ;AAIFoB,MAAAA,IAAI,EAAEvB,IAAI,CAACuB;AAJT;AAFH,GAAP;AASH,C","sourcesContent":["import uniqueId from \"uniqid\";\nimport sanitizeFilename from \"sanitize-filename\";\nimport S3 from \"aws-sdk/clients/s3\";\nimport { validation } from \"@webiny/validation\";\n\nconst S3_BUCKET = process.env.S3_BUCKET;\nconst UPLOAD_MAX_FILE_SIZE_DEFAULT = 26214400; // 25MB\n\nconst sanitizeFileSizeValue = (value, defaultValue) => {\n try {\n validation.validateSync(value, \"required,numeric,gte:0\");\n return value;\n } catch (e) {\n return defaultValue;\n }\n};\n\nexport default async (data, settings) => {\n // If type is missing, let's use the default \"application/octet-stream\" type,\n // which is also the default type that the Amazon S3 would use.\n if (!data.type) {\n data.type = \"application/octet-stream\";\n }\n\n const contentType = data.type;\n if (!contentType) {\n throw Error(`File's content type could not be resolved.`);\n }\n\n let key = sanitizeFilename(data.name);\n if (key) {\n key = uniqueId() + \"-\" + key;\n }\n\n if (data.keyPrefix) {\n key = `${sanitizeFilename(data.keyPrefix)}-${key}`;\n }\n\n // Replace all whitespace.\n key = key.replace(/\\s/g, \"\");\n\n const uploadMinFileSize = sanitizeFileSizeValue(settings.uploadMinFileSize, 0);\n const uploadMaxFileSize = sanitizeFileSizeValue(\n settings.uploadMaxFileSize,\n UPLOAD_MAX_FILE_SIZE_DEFAULT\n );\n\n const params = {\n Expires: 60,\n Bucket: S3_BUCKET,\n Conditions: [[\"content-length-range\", uploadMinFileSize, uploadMaxFileSize]], // 0 Bytes - 25MB\n Fields: {\n \"Content-Type\": contentType,\n key\n }\n };\n\n if (params.Fields.key.startsWith(\"/\")) {\n params.Fields.key = params.Fields.key.substr(1);\n }\n\n const s3 = new S3();\n const payload = s3.createPresignedPost(params);\n\n return {\n data: payload,\n file: {\n name: key,\n key,\n type: contentType,\n size: data.size\n }\n };\n};\n"],"file":"getPresignedPostPayload.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/uploadFileToS3.ts"],"names":["buffer","preSignedPostPayload","formData","FormData","Object","keys","fields","forEach","key","append","url","method","body"],"mappings":";;;;;;;;;AAAA;;AACA;;eAEe,OAAOA,MAAP,EAAeC,oBAAf,KAAwC;AACnD,QAAMC,QAAQ,GAAG,IAAIC,iBAAJ,EAAjB,CADmD,CAEnD;;AACAC,EAAAA,MAAM,CAACC,IAAP,CAAYJ,oBAAoB,CAACK,MAAjC,EAAyCC,OAAzC,CAAiDC,GAAG,IAAI;AACpDN,IAAAA,QAAQ,CAACO,MAAT,CAAgBD,GAAhB,EAAqBP,oBAAoB,CAACK,MAArB,CAA4BE,GAA5B,CAArB;AACH,GAFD,EAHmD,CAMnD;;AACAN,EAAAA,QAAQ,CAACO,MAAT,CAAgB,MAAhB,EAAwBT,MAAxB,EAPmD,CAQnD;;AACA,SAAO,wBAAMC,oBAAoB,CAACS,GAA3B,EAAgC;AACnCC,IAAAA,MAAM,EAAE,MAD2B;AAEnCC,IAAAA,IAAI,EAAEV;AAF6B,GAAhC,CAAP;AAIH,C","sourcesContent":["import FormData from \"form-data\";\nimport fetch from \"node-fetch\";\n\nexport default async (buffer, preSignedPostPayload) => {\n const formData = new FormData();\n // Add all pre signed payload field to \"FormData\".\n Object.keys(preSignedPostPayload.fields).forEach(key => {\n formData.append(key, preSignedPostPayload.fields[key]);\n });\n // Add file content to \"FormData\".\n formData.append(\"file\", buffer);\n // Finally make the upload request to S3.\n return fetch(preSignedPostPayload.url, {\n method: \"POST\",\n body: formData\n });\n};\n"],"file":"uploadFileToS3.js"}
|