@payloadcms/plugin-cloud-storage 1.0.1 → 1.0.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/.eslintrc.js +4 -0
- package/README.md +16 -5
- package/azure.d.ts +1 -0
- package/azure.js +1 -0
- package/dist/adapters/azure/index.js +2 -0
- package/dist/adapters/azure/index.js.map +1 -1
- package/dist/adapters/azure/staticHandler.d.ts +7 -0
- package/dist/adapters/azure/staticHandler.js +65 -0
- package/dist/adapters/azure/staticHandler.js.map +1 -0
- package/dist/adapters/s3/handleDelete.d.ts +0 -2
- package/dist/adapters/s3/handleDelete.js.map +1 -1
- package/dist/adapters/s3/index.js +3 -1
- package/dist/adapters/s3/index.js.map +1 -1
- package/dist/adapters/s3/staticHandler.d.ts +8 -0
- package/dist/adapters/s3/staticHandler.js +67 -0
- package/dist/adapters/s3/staticHandler.js.map +1 -0
- package/dist/fields/getFields.d.ts +2 -1
- package/dist/fields/getFields.js +52 -48
- package/dist/fields/getFields.js.map +1 -1
- package/dist/plugin.js +9 -1
- package/dist/plugin.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/package.json +8 -5
- package/s3.d.ts +1 -0
- package/s3.js +1 -0
package/.eslintrc.js
ADDED
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ This repository contains the officially supported Payload Cloud Storage plugin.
|
|
|
4
4
|
|
|
5
5
|
#### Requirements
|
|
6
6
|
|
|
7
|
-
- Payload version `1.0.
|
|
7
|
+
- Payload version `1.0.19` or higher is required
|
|
8
8
|
|
|
9
9
|
## Usage
|
|
10
10
|
|
|
@@ -54,6 +54,7 @@ This plugin is configurable to work across many different Payload collections. A
|
|
|
54
54
|
| `slug` * | The collection slug to extend. |
|
|
55
55
|
| `adapter` * | Pass in the adapter that you'd like to use for this collection. |
|
|
56
56
|
| `disableLocalStorage` | Choose to disable local storage on this collection. Defaults to `true`. |
|
|
57
|
+
| `disablePayloadAccessControl` | Set to `true` to disable Payload's access control. [More](#payload-access-control) |
|
|
57
58
|
|
|
58
59
|
### Azure Blob Storage Adapter
|
|
59
60
|
|
|
@@ -62,7 +63,7 @@ To use the Azure Blob Storage adapter, you need to have `@azure/storage-blob` in
|
|
|
62
63
|
From there, create the adapter, passing in all of its required properties:
|
|
63
64
|
|
|
64
65
|
```js
|
|
65
|
-
import { azureBlobStorageAdapter } from '@payloadcms/plugin-cloud-storage';
|
|
66
|
+
import { azureBlobStorageAdapter } from '@payloadcms/plugin-cloud-storage/azure';
|
|
66
67
|
|
|
67
68
|
const adapter = azureBlobStorageAdapter({
|
|
68
69
|
connectionString: process.env.AZURE_STORAGE_CONNECTION_STRING,
|
|
@@ -76,12 +77,12 @@ const adapter = azureBlobStorageAdapter({
|
|
|
76
77
|
|
|
77
78
|
### S3 Adapter
|
|
78
79
|
|
|
79
|
-
To use the S3 adapter, you need to have `@aws-sdk/client-s3`
|
|
80
|
+
To use the S3 adapter, you need to have `@aws-sdk/client-s3` installed in your project dependencies. To do so, run `yarn add @aws-sdk/client-s3`.
|
|
80
81
|
|
|
81
82
|
From there, create the adapter, passing in all of its required properties:
|
|
82
83
|
|
|
83
84
|
```js
|
|
84
|
-
import { s3Adapter } from '@payloadcms/plugin-cloud-storage';
|
|
85
|
+
import { s3Adapter } from '@payloadcms/plugin-cloud-storage/s3';
|
|
85
86
|
|
|
86
87
|
const adapter = s3Adapter({
|
|
87
88
|
config: {
|
|
@@ -97,9 +98,19 @@ const adapter = s3Adapter({
|
|
|
97
98
|
// Now you can pass this adapter to the plugin
|
|
98
99
|
```
|
|
99
100
|
|
|
101
|
+
### Payload Access Control
|
|
102
|
+
|
|
103
|
+
Payload ships with access control that runs _even on statically served files_. The same `read` access control property on your `upload`-enabled collections is used, and it allows you to restrict who can request your uploaded files.
|
|
104
|
+
|
|
105
|
+
To preserve this feature, by default, this plugin _keeps all file URLs exactly the same_. Your file URLs won't be updated to point directly to your cloud storage source, as in that case, Payload's access control will be completely bypassed and you would need public readability on your cloud-hosted files.
|
|
106
|
+
|
|
107
|
+
Instead, all uploads will still be reached from the default `/collectionSlug/staticURL/filename` path. This plugin will "pass through" all files that are hosted on your third-party cloud service—with the added benefit of keeping your existing access control in place.
|
|
108
|
+
|
|
109
|
+
If this does not apply to you (your upload collection has `read: () => true` or similar) you can disable this functionality by setting `disablePayloadAccessControl` to `true`. When this setting is in place, this plugin will update your file URLs to point directly to your cloud host.
|
|
110
|
+
|
|
100
111
|
## Local development
|
|
101
112
|
|
|
102
|
-
For instructions regarding how to develop with this plugin locally, [click here](/docs/local-dev.md).
|
|
113
|
+
For instructions regarding how to develop with this plugin locally, [click here](https://github.com/payloadcms/plugin-cloud-storage/blob/master/docs/local-dev.md).
|
|
103
114
|
|
|
104
115
|
## Questions
|
|
105
116
|
|
package/azure.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './dist/adapters/azure'
|
package/azure.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.azureBlobStorageAdapter = require('./dist/adapters/azure')
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.azureBlobStorageAdapter = void 0;
|
|
4
4
|
var storage_blob_1 = require("@azure/storage-blob");
|
|
5
|
+
var staticHandler_1 = require("./staticHandler");
|
|
5
6
|
var generateURL_1 = require("./generateURL");
|
|
6
7
|
var handleDelete_1 = require("./handleDelete");
|
|
7
8
|
var handleUpload_1 = require("./handleUpload");
|
|
@@ -20,6 +21,7 @@ var azureBlobStorageAdapter = function (_a) {
|
|
|
20
21
|
}),
|
|
21
22
|
handleDelete: (0, handleDelete_1.getHandleDelete)({ collection: collection, containerClient: containerClient }),
|
|
22
23
|
generateURL: (0, generateURL_1.getGenerateURL)({ containerName: containerName, baseURL: baseURL }),
|
|
24
|
+
staticHandler: (0, staticHandler_1.getHandler)({ containerClient: containerClient }),
|
|
23
25
|
webpack: webpack_1.extendWebpackConfig,
|
|
24
26
|
};
|
|
25
27
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/azure/index.ts"],"names":[],"mappings":";;;AAAA,oDAAuD;AAEvD,6CAA8C;AAC9C,+CAAgD;AAChD,+CAAgD;AAChD,qCAA+C;AASxC,IAAM,uBAAuB,GAClC,UAAC,EAAwE;QAAtE,gBAAgB,sBAAA,EAAE,aAAa,mBAAA,EAAE,OAAO,aAAA,EAAE,oBAAoB,0BAAA;IACjE,OAAA,UAAC,EAAc;YAAZ,UAAU,gBAAA;QACX,IAAM,iBAAiB,GAAG,gCAAiB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAA;QAClF,IAAM,eAAe,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAA;QAE3E,OAAO;YACL,YAAY,EAAE,IAAA,8BAAe,EAAC;gBAC5B,UAAU,YAAA;gBACV,eAAe,iBAAA;gBACf,oBAAoB,sBAAA;aACrB,CAAC;YACF,YAAY,EAAE,IAAA,8BAAe,EAAC,EAAE,UAAU,YAAA,EAAE,eAAe,iBAAA,EAAE,CAAC;YAC9D,WAAW,EAAE,IAAA,4BAAc,EAAC,EAAE,aAAa,eAAA,EAAE,OAAO,SAAA,EAAE,CAAC;YACvD,OAAO,EAAE,6BAAmB;SAC7B,CAAA;IACH,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/azure/index.ts"],"names":[],"mappings":";;;AAAA,oDAAuD;AAEvD,iDAA4C;AAC5C,6CAA8C;AAC9C,+CAAgD;AAChD,+CAAgD;AAChD,qCAA+C;AASxC,IAAM,uBAAuB,GAClC,UAAC,EAAwE;QAAtE,gBAAgB,sBAAA,EAAE,aAAa,mBAAA,EAAE,OAAO,aAAA,EAAE,oBAAoB,0BAAA;IACjE,OAAA,UAAC,EAAc;YAAZ,UAAU,gBAAA;QACX,IAAM,iBAAiB,GAAG,gCAAiB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAA;QAClF,IAAM,eAAe,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAA;QAE3E,OAAO;YACL,YAAY,EAAE,IAAA,8BAAe,EAAC;gBAC5B,UAAU,YAAA;gBACV,eAAe,iBAAA;gBACf,oBAAoB,sBAAA;aACrB,CAAC;YACF,YAAY,EAAE,IAAA,8BAAe,EAAC,EAAE,UAAU,YAAA,EAAE,eAAe,iBAAA,EAAE,CAAC;YAC9D,WAAW,EAAE,IAAA,4BAAc,EAAC,EAAE,aAAa,eAAA,EAAE,OAAO,SAAA,EAAE,CAAC;YACvD,aAAa,EAAE,IAAA,0BAAU,EAAC,EAAE,eAAe,iBAAA,EAAE,CAAC;YAC9C,OAAO,EAAE,6BAAmB;SAC7B,CAAA;IACH,CAAC;AAfD,CAeC,CAAA;AAjBU,QAAA,uBAAuB,2BAiBjC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.getHandler = void 0;
|
|
40
|
+
var getHandler = function (_a) {
|
|
41
|
+
var containerClient = _a.containerClient;
|
|
42
|
+
return function (req, res, next) { return __awaiter(void 0, void 0, void 0, function () {
|
|
43
|
+
var blockBlobClient, downloadBlockBlobResponse, err_1;
|
|
44
|
+
return __generator(this, function (_a) {
|
|
45
|
+
switch (_a.label) {
|
|
46
|
+
case 0:
|
|
47
|
+
_a.trys.push([0, 2, , 3]);
|
|
48
|
+
blockBlobClient = containerClient.getBlockBlobClient(req.params.filename);
|
|
49
|
+
return [4 /*yield*/, blockBlobClient.download(0)];
|
|
50
|
+
case 1:
|
|
51
|
+
downloadBlockBlobResponse = _a.sent();
|
|
52
|
+
if (downloadBlockBlobResponse === null || downloadBlockBlobResponse === void 0 ? void 0 : downloadBlockBlobResponse.readableStreamBody) {
|
|
53
|
+
return [2 /*return*/, downloadBlockBlobResponse.readableStreamBody.pipe(res)];
|
|
54
|
+
}
|
|
55
|
+
return [2 /*return*/, next()];
|
|
56
|
+
case 2:
|
|
57
|
+
err_1 = _a.sent();
|
|
58
|
+
return [2 /*return*/, next()];
|
|
59
|
+
case 3: return [2 /*return*/];
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}); };
|
|
63
|
+
};
|
|
64
|
+
exports.getHandler = getHandler;
|
|
65
|
+
//# sourceMappingURL=staticHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staticHandler.js","sourceRoot":"","sources":["../../../src/adapters/azure/staticHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,IAAM,UAAU,GAAG,UAAC,EAAyB;QAAvB,eAAe,qBAAA;IAC1C,OAAO,UAAO,GAAG,EAAE,GAAG,EAAE,IAAI;;;;;;oBAElB,eAAe,GAAG,eAAe,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;oBAE7C,qBAAM,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAA;;oBAA7D,yBAAyB,GAAG,SAAiC;oBAEnE,IAAI,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,kBAAkB,EAAE;wBACjD,sBAAO,yBAAyB,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA;qBAC9D;oBAED,sBAAO,IAAI,EAAE,EAAA;;;oBAEb,sBAAO,IAAI,EAAE,EAAA;;;;SAEhB,CAAA;AACH,CAAC,CAAA;AAhBY,QAAA,UAAU,cAgBtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleDelete.js","sourceRoot":"","sources":["../../../src/adapters/s3/handleDelete.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"handleDelete.js","sourceRoot":"","sources":["../../../src/adapters/s3/handleDelete.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,IAAM,eAAe,GAAG,UAAC,EAAoB;QAAlB,EAAE,QAAA,EAAE,MAAM,YAAA;IAC1C,OAAO,UAAO,EAAY;YAAV,QAAQ,cAAA;;;;4BACtB,qBAAM,EAAE,CAAC,YAAY,CAAC;4BACpB,MAAM,EAAE,MAAM;4BACd,GAAG,EAAE,QAAQ;yBACd,CAAC,EAAA;;wBAHF,SAGE,CAAA;;;;;KACH,CAAA;AACH,CAAC,CAAA;AAPY,QAAA,eAAe,mBAO3B"}
|
|
@@ -26,6 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.s3Adapter = void 0;
|
|
27
27
|
var AWS = __importStar(require("@aws-sdk/client-s3"));
|
|
28
28
|
var generateURL_1 = require("./generateURL");
|
|
29
|
+
var staticHandler_1 = require("./staticHandler");
|
|
29
30
|
var handleDelete_1 = require("./handleDelete");
|
|
30
31
|
var handleUpload_1 = require("./handleUpload");
|
|
31
32
|
var webpack_1 = require("./webpack");
|
|
@@ -41,8 +42,9 @@ var s3Adapter = function (_a) {
|
|
|
41
42
|
bucket: bucket,
|
|
42
43
|
acl: acl,
|
|
43
44
|
}),
|
|
44
|
-
handleDelete: (0, handleDelete_1.getHandleDelete)({
|
|
45
|
+
handleDelete: (0, handleDelete_1.getHandleDelete)({ s3: s3, bucket: bucket }),
|
|
45
46
|
generateURL: (0, generateURL_1.getGenerateURL)({ bucket: bucket, config: config }),
|
|
47
|
+
staticHandler: (0, staticHandler_1.getHandler)({ bucket: bucket, s3: s3 }),
|
|
46
48
|
webpack: webpack_1.extendWebpackConfig,
|
|
47
49
|
};
|
|
48
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/s3/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAyC;AAEzC,6CAA8C;AAC9C,+CAAgD;AAChD,+CAAgD;AAChD,qCAA+C;AAQxC,IAAM,SAAS,GACpB,UAAC,EAA6B;QAA3B,MAAM,YAAA,EAAE,MAAM,YAAA,EAAE,GAAG,SAAA;IACtB,OAAA,UAAC,EAAc;YAAZ,UAAU,gBAAA;QACX,IAAM,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;QAE7B,OAAO;YACL,YAAY,EAAE,IAAA,8BAAe,EAAC;gBAC5B,UAAU,YAAA;gBACV,EAAE,IAAA;gBACF,MAAM,QAAA;gBACN,GAAG,KAAA;aACJ,CAAC;YACF,YAAY,EAAE,IAAA,8BAAe,EAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/s3/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAyC;AAEzC,6CAA8C;AAC9C,iDAA4C;AAC5C,+CAAgD;AAChD,+CAAgD;AAChD,qCAA+C;AAQxC,IAAM,SAAS,GACpB,UAAC,EAA6B;QAA3B,MAAM,YAAA,EAAE,MAAM,YAAA,EAAE,GAAG,SAAA;IACtB,OAAA,UAAC,EAAc;YAAZ,UAAU,gBAAA;QACX,IAAM,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;QAE7B,OAAO;YACL,YAAY,EAAE,IAAA,8BAAe,EAAC;gBAC5B,UAAU,YAAA;gBACV,EAAE,IAAA;gBACF,MAAM,QAAA;gBACN,GAAG,KAAA;aACJ,CAAC;YACF,YAAY,EAAE,IAAA,8BAAe,EAAC,EAAE,EAAE,IAAA,EAAE,MAAM,QAAA,EAAE,CAAC;YAC7C,WAAW,EAAE,IAAA,4BAAc,EAAC,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,CAAC;YAC/C,aAAa,EAAE,IAAA,0BAAU,EAAC,EAAE,MAAM,QAAA,EAAE,EAAE,IAAA,EAAE,CAAC;YACzC,OAAO,EAAE,6BAAmB;SAC7B,CAAA;IACH,CAAC;AAfD,CAeC,CAAA;AAjBU,QAAA,SAAS,aAiBnB"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.getHandler = void 0;
|
|
40
|
+
var getHandler = function (_a) {
|
|
41
|
+
var s3 = _a.s3, bucket = _a.bucket;
|
|
42
|
+
return function (req, res, next) { return __awaiter(void 0, void 0, void 0, function () {
|
|
43
|
+
var response, err_1;
|
|
44
|
+
return __generator(this, function (_a) {
|
|
45
|
+
switch (_a.label) {
|
|
46
|
+
case 0:
|
|
47
|
+
_a.trys.push([0, 2, , 3]);
|
|
48
|
+
return [4 /*yield*/, s3.getObject({
|
|
49
|
+
Bucket: bucket,
|
|
50
|
+
Key: req.params.filename,
|
|
51
|
+
})];
|
|
52
|
+
case 1:
|
|
53
|
+
response = _a.sent();
|
|
54
|
+
if (response === null || response === void 0 ? void 0 : response.Body) {
|
|
55
|
+
return [2 /*return*/, response.Body.pipe(res)];
|
|
56
|
+
}
|
|
57
|
+
return [2 /*return*/, next()];
|
|
58
|
+
case 2:
|
|
59
|
+
err_1 = _a.sent();
|
|
60
|
+
return [2 /*return*/, next()];
|
|
61
|
+
case 3: return [2 /*return*/];
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}); };
|
|
65
|
+
};
|
|
66
|
+
exports.getHandler = getHandler;
|
|
67
|
+
//# sourceMappingURL=staticHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staticHandler.js","sourceRoot":"","sources":["../../../src/adapters/s3/staticHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASO,IAAM,UAAU,GAAG,UAAC,EAAoB;QAAlB,EAAE,QAAA,EAAE,MAAM,YAAA;IACrC,OAAO,UAAO,GAAG,EAAE,GAAG,EAAE,IAAI;;;;;;oBAEP,qBAAM,EAAE,CAAC,SAAS,CAAC;4BAClC,MAAM,EAAE,MAAM;4BACd,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ;yBACzB,CAAC,EAAA;;oBAHI,QAAQ,GAAG,SAGf;oBAEF,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,EAAE;wBAClB,sBAAQ,QAAQ,CAAC,IAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA;qBAC7C;oBAED,sBAAO,IAAI,EAAE,EAAA;;;oBAEb,sBAAO,IAAI,EAAE,EAAA;;;;SAEhB,CAAA;AACH,CAAC,CAAA;AAjBY,QAAA,UAAU,cAiBtB"}
|
|
@@ -2,7 +2,8 @@ import type { CollectionConfig, Field } from 'payload/types';
|
|
|
2
2
|
import type { GeneratedAdapter } from '../types';
|
|
3
3
|
interface Args {
|
|
4
4
|
collection: CollectionConfig;
|
|
5
|
+
disablePayloadAccessControl?: true;
|
|
5
6
|
adapter: GeneratedAdapter;
|
|
6
7
|
}
|
|
7
|
-
export declare const getFields: ({ adapter, collection }: Args) => Field[];
|
|
8
|
+
export declare const getFields: ({ adapter, collection, disablePayloadAccessControl }: Args) => Field[];
|
|
8
9
|
export {};
|
package/dist/fields/getFields.js
CHANGED
|
@@ -22,62 +22,66 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
23
|
exports.getFields = void 0;
|
|
24
24
|
var afterRead_1 = require("../hooks/afterRead");
|
|
25
|
-
var baseURLField = {
|
|
26
|
-
name: 'url',
|
|
27
|
-
label: 'URL',
|
|
28
|
-
type: 'text',
|
|
29
|
-
admin: {
|
|
30
|
-
readOnly: true,
|
|
31
|
-
disabled: true,
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
25
|
var getFields = function (_a) {
|
|
35
26
|
var _b;
|
|
36
|
-
var adapter = _a.adapter, collection = _a.collection;
|
|
27
|
+
var adapter = _a.adapter, collection = _a.collection, disablePayloadAccessControl = _a.disablePayloadAccessControl;
|
|
28
|
+
var baseURLField = {
|
|
29
|
+
name: 'url',
|
|
30
|
+
label: 'URL',
|
|
31
|
+
type: 'text',
|
|
32
|
+
admin: {
|
|
33
|
+
readOnly: true,
|
|
34
|
+
disabled: true,
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
37
|
var fields = __spreadArray([], collection.fields, true);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
});
|
|
46
|
-
if (existingURLFieldIndex > -1) {
|
|
47
|
-
fields.splice(existingURLFieldIndex, 1);
|
|
48
|
-
}
|
|
49
|
-
fields.push(__assign(__assign(__assign({}, baseURLField), (existingURLField || {})), { hooks: {
|
|
50
|
-
afterRead: __spreadArray([
|
|
51
|
-
(0, afterRead_1.getAfterReadHook)({ adapter: adapter, collection: collection })
|
|
52
|
-
], (((_b = existingURLField === null || existingURLField === void 0 ? void 0 : existingURLField.hooks) === null || _b === void 0 ? void 0 : _b.afterRead) || []), true),
|
|
53
|
-
} }));
|
|
54
|
-
if (typeof collection.upload === 'object' && collection.upload.imageSizes) {
|
|
55
|
-
var existingSizesFieldIndex_1 = -1;
|
|
56
|
-
var existingSizesField_1 = fields.find(function (existingField, i) {
|
|
57
|
-
if ('name' in existingField && existingField.name === 'sizes') {
|
|
58
|
-
existingSizesFieldIndex_1 = i;
|
|
38
|
+
// If Payload access control is disabled,
|
|
39
|
+
// inject a hook into all URL fields to point directly to the cloud source
|
|
40
|
+
if (disablePayloadAccessControl) {
|
|
41
|
+
var existingURLFieldIndex_1 = -1;
|
|
42
|
+
var existingURLField = fields.find(function (existingField, i) {
|
|
43
|
+
if ('name' in existingField && existingField.name === 'url') {
|
|
44
|
+
existingURLFieldIndex_1 = i;
|
|
59
45
|
return true;
|
|
60
46
|
}
|
|
61
47
|
return false;
|
|
62
48
|
});
|
|
63
|
-
if (
|
|
64
|
-
fields.splice(
|
|
49
|
+
if (existingURLFieldIndex_1 > -1) {
|
|
50
|
+
fields.splice(existingURLFieldIndex_1, 1);
|
|
51
|
+
}
|
|
52
|
+
fields.push(__assign(__assign(__assign({}, baseURLField), (existingURLField || {})), { hooks: {
|
|
53
|
+
afterRead: __spreadArray([
|
|
54
|
+
(0, afterRead_1.getAfterReadHook)({ adapter: adapter, collection: collection })
|
|
55
|
+
], (((_b = existingURLField === null || existingURLField === void 0 ? void 0 : existingURLField.hooks) === null || _b === void 0 ? void 0 : _b.afterRead) || []), true),
|
|
56
|
+
} }));
|
|
57
|
+
if (typeof collection.upload === 'object' && collection.upload.imageSizes) {
|
|
58
|
+
var existingSizesFieldIndex_1 = -1;
|
|
59
|
+
var existingSizesField_1 = fields.find(function (existingField, i) {
|
|
60
|
+
if ('name' in existingField && existingField.name === 'sizes') {
|
|
61
|
+
existingSizesFieldIndex_1 = i;
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
return false;
|
|
65
|
+
});
|
|
66
|
+
if (existingSizesFieldIndex_1 > -1) {
|
|
67
|
+
fields.splice(existingSizesFieldIndex_1, 1);
|
|
68
|
+
}
|
|
69
|
+
var sizesField = __assign(__assign({}, (existingSizesField_1 || {})), { name: 'sizes', type: 'group', admin: {
|
|
70
|
+
disabled: true,
|
|
71
|
+
}, fields: collection.upload.imageSizes.map(function (size) {
|
|
72
|
+
var _a;
|
|
73
|
+
var existingSizeField = existingSizesField_1 === null || existingSizesField_1 === void 0 ? void 0 : existingSizesField_1.fields.find(function (existingField) { return 'name' in existingField && existingField.name === size.name; });
|
|
74
|
+
var existingSizeURLField = existingSizeField === null || existingSizeField === void 0 ? void 0 : existingSizeField.fields.find(function (existingField) { return 'name' in existingField && existingField.name === 'url'; });
|
|
75
|
+
return __assign(__assign({}, existingSizeField), { name: size.name, type: 'group', fields: [
|
|
76
|
+
__assign(__assign(__assign({}, (existingSizeURLField || {})), baseURLField), { hooks: {
|
|
77
|
+
afterRead: __spreadArray([
|
|
78
|
+
(0, afterRead_1.getAfterReadHook)({ adapter: adapter, collection: collection, size: size })
|
|
79
|
+
], (((_a = existingSizeURLField === null || existingSizeURLField === void 0 ? void 0 : existingSizeURLField.hooks) === null || _a === void 0 ? void 0 : _a.afterRead) || []), true),
|
|
80
|
+
} }),
|
|
81
|
+
] });
|
|
82
|
+
}) });
|
|
83
|
+
fields.push(sizesField);
|
|
65
84
|
}
|
|
66
|
-
var sizesField = __assign(__assign({}, (existingSizesField_1 || {})), { name: 'sizes', type: 'group', admin: {
|
|
67
|
-
disabled: true,
|
|
68
|
-
}, fields: collection.upload.imageSizes.map(function (size) {
|
|
69
|
-
var _a;
|
|
70
|
-
var existingSizeField = existingSizesField_1 === null || existingSizesField_1 === void 0 ? void 0 : existingSizesField_1.fields.find(function (existingField) { return 'name' in existingField && existingField.name === size.name; });
|
|
71
|
-
var existingSizeURLField = existingSizeField === null || existingSizeField === void 0 ? void 0 : existingSizeField.fields.find(function (existingField) { return 'name' in existingField && existingField.name === 'url'; });
|
|
72
|
-
return __assign(__assign({}, existingSizeField), { name: size.name, type: 'group', fields: [
|
|
73
|
-
__assign(__assign(__assign({}, (existingSizeURLField || {})), baseURLField), { hooks: {
|
|
74
|
-
afterRead: __spreadArray([
|
|
75
|
-
(0, afterRead_1.getAfterReadHook)({ adapter: adapter, collection: collection, size: size })
|
|
76
|
-
], (((_a = existingSizeURLField === null || existingSizeURLField === void 0 ? void 0 : existingSizeURLField.hooks) === null || _a === void 0 ? void 0 : _a.afterRead) || []), true),
|
|
77
|
-
} }),
|
|
78
|
-
] });
|
|
79
|
-
}) });
|
|
80
|
-
fields.push(sizesField);
|
|
81
85
|
}
|
|
82
86
|
return fields;
|
|
83
87
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFields.js","sourceRoot":"","sources":["../../src/fields/getFields.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA,gDAAqD;
|
|
1
|
+
{"version":3,"file":"getFields.js","sourceRoot":"","sources":["../../src/fields/getFields.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin.js
CHANGED
|
@@ -47,9 +47,17 @@ var cloudStorage = function (pluginOptions) {
|
|
|
47
47
|
var adapter = options.adapter({ collection: existingCollection });
|
|
48
48
|
var fields = (0, getFields_1.getFields)({
|
|
49
49
|
collection: existingCollection,
|
|
50
|
+
disablePayloadAccessControl: options.disablePayloadAccessControl,
|
|
50
51
|
adapter: adapter,
|
|
51
52
|
});
|
|
52
|
-
|
|
53
|
+
var handlers = __spreadArray([], (typeof existingCollection.upload === 'object' &&
|
|
54
|
+
Array.isArray(existingCollection.upload.handlers)
|
|
55
|
+
? existingCollection.upload.handlers
|
|
56
|
+
: []), true);
|
|
57
|
+
if (!options.disablePayloadAccessControl) {
|
|
58
|
+
handlers.push(adapter.staticHandler);
|
|
59
|
+
}
|
|
60
|
+
return __assign(__assign({}, existingCollection), { upload: __assign(__assign({}, (typeof existingCollection.upload === 'object' ? existingCollection.upload : {})), { handlers: handlers, disableLocalStorage: typeof options.disableLocalStorage === 'boolean'
|
|
53
61
|
? options.disableLocalStorage
|
|
54
62
|
: true }), hooks: __assign(__assign({}, (existingCollection.hooks || {})), { beforeChange: __spreadArray(__spreadArray([], (((_a = existingCollection.hooks) === null || _a === void 0 ? void 0 : _a.beforeChange) || []), true), [
|
|
55
63
|
(0, beforeChange_1.getBeforeChangeHook)({ adapter: adapter, collection: existingCollection }),
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA,qCAA+C;AAE/C,qDAA0D;AAC1D,mDAAwD;AACxD,gDAA8C;AAE9C,4EAA4E;AAC5E,4DAA4D;AAE5D,4FAA4F;AAC5F,kFAAkF;AAClF,mDAAmD;AAEnD,0FAA0F;AAEnF,IAAM,YAAY,GACvB,UAAC,aAA4B;IAC7B,OAAA,UAAC,MAAc;QACL,IAAa,oBAAoB,GAAK,aAAa,YAAlB,CAAkB;QAE3D,IAAM,OAAO,GAAG,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;QAEvE,6BACK,MAAM,KACT,KAAK,EAAE;gBACL,OAAO,SAAA;aACR,EACD,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAA,kBAAkB;;gBAC5D,IAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,UAAC,EAAQ;wBAAN,IAAI,UAAA;oBAAO,OAAA,IAAI,KAAK,kBAAkB,CAAC,IAAI;gBAAhC,CAAgC,CAAC,CAAA;gBAEzF,IAAI,OAAO,EAAE;oBACX,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC,CAAA;oBAEnE,IAAM,MAAM,GAAG,IAAA,qBAAS,EAAC;wBACvB,UAAU,EAAE,kBAAkB;wBAC9B,OAAO,SAAA;qBACR,CAAC,CAAA;oBAEF,6BACK,kBAAkB,KACrB,MAAM,wBACD,CAAC,OAAO,kBAAkB,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KACnF,mBAAmB,EACjB,OAAO,OAAO,CAAC,mBAAmB,KAAK,SAAS;gCAC9C,CAAC,CAAC,OAAO,CAAC,mBAAmB;gCAC7B,CAAC,CAAC,IAAI,KAEZ,KAAK,wBACA,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC,KACnC,YAAY,kCACP,CAAC,CAAA,MAAA,kBAAkB,CAAC,KAAK,0CAAE,YAAY,KAAI,EAAE,CAAC;gCACjD,IAAA,kCAAmB,EAAC,EAAE,OAAO,SAAA,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC;uCAElE,WAAW,kCACN,CAAC,CAAA,MAAA,kBAAkB,CAAC,KAAK,0CAAE,WAAW,KAAI,EAAE,CAAC;gCAChD,IAAA,gCAAkB,EAAC,EAAE,OAAO,SAAA,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC;0CAGnE,MAAM,QAAA,IACP;iBACF;gBAED,OAAO,kBAAkB,CAAA;YAC3B,CAAC,CAAC,IACH;IACH,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA,qCAA+C;AAE/C,qDAA0D;AAC1D,mDAAwD;AACxD,gDAA8C;AAE9C,4EAA4E;AAC5E,4DAA4D;AAE5D,4FAA4F;AAC5F,kFAAkF;AAClF,mDAAmD;AAEnD,0FAA0F;AAEnF,IAAM,YAAY,GACvB,UAAC,aAA4B;IAC7B,OAAA,UAAC,MAAc;QACL,IAAa,oBAAoB,GAAK,aAAa,YAAlB,CAAkB;QAE3D,IAAM,OAAO,GAAG,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;QAEvE,6BACK,MAAM,KACT,KAAK,EAAE;gBACL,OAAO,SAAA;aACR,EACD,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAA,kBAAkB;;gBAC5D,IAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,UAAC,EAAQ;wBAAN,IAAI,UAAA;oBAAO,OAAA,IAAI,KAAK,kBAAkB,CAAC,IAAI;gBAAhC,CAAgC,CAAC,CAAA;gBAEzF,IAAI,OAAO,EAAE;oBACX,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC,CAAA;oBAEnE,IAAM,MAAM,GAAG,IAAA,qBAAS,EAAC;wBACvB,UAAU,EAAE,kBAAkB;wBAC9B,2BAA2B,EAAE,OAAO,CAAC,2BAA2B;wBAChE,OAAO,SAAA;qBACR,CAAC,CAAA;oBAEF,IAAM,QAAQ,qBACT,CAAC,OAAO,kBAAkB,CAAC,MAAM,KAAK,QAAQ;wBACjD,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC;wBAC/C,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ;wBACpC,CAAC,CAAC,EAAE,CAAC,OACR,CAAA;oBAED,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE;wBACxC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;qBACrC;oBAED,6BACK,kBAAkB,KACrB,MAAM,wBACD,CAAC,OAAO,kBAAkB,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KACnF,QAAQ,UAAA,EACR,mBAAmB,EACjB,OAAO,OAAO,CAAC,mBAAmB,KAAK,SAAS;gCAC9C,CAAC,CAAC,OAAO,CAAC,mBAAmB;gCAC7B,CAAC,CAAC,IAAI,KAEZ,KAAK,wBACA,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC,KACnC,YAAY,kCACP,CAAC,CAAA,MAAA,kBAAkB,CAAC,KAAK,0CAAE,YAAY,KAAI,EAAE,CAAC;gCACjD,IAAA,kCAAmB,EAAC,EAAE,OAAO,SAAA,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC;uCAElE,WAAW,kCACN,CAAC,CAAA,MAAA,kBAAkB,CAAC,KAAK,0CAAE,WAAW,KAAI,EAAE,CAAC;gCAChD,IAAA,gCAAkB,EAAC,EAAE,OAAO,SAAA,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC;0CAGnE,MAAM,QAAA,IACP;iBACF;gBAED,OAAO,kBAAkB,CAAA;YAC3B,CAAC,CAAC,IACH;IACH,CAAC;AA7DD,CA6DC,CAAA;AA/DU,QAAA,YAAY,gBA+DtB"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
import type { NextFunction, Response } from 'express';
|
|
2
3
|
import type { TypeWithID } from 'payload/dist/collections/config/types';
|
|
3
4
|
import type { FileData } from 'payload/dist/uploads/types';
|
|
4
5
|
import type { CollectionConfig, PayloadRequest } from 'payload/types';
|
|
@@ -24,10 +25,12 @@ export declare type GenerateURL = (args: {
|
|
|
24
25
|
filename: string;
|
|
25
26
|
collection: CollectionConfig;
|
|
26
27
|
}) => string | Promise<string>;
|
|
28
|
+
export declare type StaticHandler = (req: PayloadRequest, res: Response, next: NextFunction) => Promise<unknown> | unknown;
|
|
27
29
|
export interface GeneratedAdapter {
|
|
28
30
|
handleUpload: HandleUpload;
|
|
29
31
|
handleDelete: HandleDelete;
|
|
30
32
|
generateURL: GenerateURL;
|
|
33
|
+
staticHandler: StaticHandler;
|
|
31
34
|
webpack?: (config: WebpackConfig) => WebpackConfig;
|
|
32
35
|
}
|
|
33
36
|
export declare type Adapter = (args: {
|
|
@@ -36,6 +39,7 @@ export declare type Adapter = (args: {
|
|
|
36
39
|
export interface CollectionOptions {
|
|
37
40
|
slug: string;
|
|
38
41
|
disableLocalStorage?: boolean;
|
|
42
|
+
disablePayloadAccessControl?: true;
|
|
39
43
|
adapter: Adapter;
|
|
40
44
|
}
|
|
41
45
|
export interface PluginOptions {
|
package/package.json
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/plugin-cloud-storage",
|
|
3
3
|
"description": "The official cloud storage plugin for Payload CMS",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.2",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
|
-
"files": [
|
|
8
|
-
"dist"
|
|
9
|
-
],
|
|
10
7
|
"license": "SEE LICENSE IN LICENSE.MD",
|
|
11
8
|
"scripts": {
|
|
12
9
|
"build": "tsc",
|
|
@@ -25,6 +22,12 @@
|
|
|
25
22
|
"optional": true
|
|
26
23
|
}
|
|
27
24
|
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist",
|
|
27
|
+
"*.js",
|
|
28
|
+
"*.d.ts",
|
|
29
|
+
"!.prettierrc.js"
|
|
30
|
+
],
|
|
28
31
|
"devDependencies": {
|
|
29
32
|
"@aws-sdk/client-s3": "^3.142.0",
|
|
30
33
|
"@azure/storage-blob": "^12.11.0",
|
|
@@ -39,7 +42,7 @@
|
|
|
39
42
|
"eslint-plugin-import": "2.25.4",
|
|
40
43
|
"eslint-plugin-prettier": "^4.0.0",
|
|
41
44
|
"nodemon": "^2.0.6",
|
|
42
|
-
"payload": "^1.0.
|
|
45
|
+
"payload": "^1.0.19",
|
|
43
46
|
"prettier": "^2.7.1",
|
|
44
47
|
"ts-node": "^9.1.1",
|
|
45
48
|
"typescript": "^4.1.3"
|
package/s3.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './dist/adapters/s3'
|
package/s3.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.s3Adapter = require('./dist/adapters/s3')
|