|
@@ -57,6 +57,21 @@ module.exports = class AwsS3 extends Plugin {
|
|
}).then((response) => response.json())
|
|
}).then((response) => response.json())
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ validateParameters (file, params) {
|
|
|
|
+ const valid = typeof params === 'object' && params &&
|
|
|
|
+ typeof params.url === 'string' &&
|
|
|
|
+ (typeof params.fields === 'object' || params.fields == null) &&
|
|
|
|
+ (params.method == null || /^(put|post)$/i.test(params.method))
|
|
|
|
+
|
|
|
|
+ if (!valid) {
|
|
|
|
+ const err = new TypeError(`AwsS3: got incorrect result from 'getUploadParameters()' for file '${file.name}', expected an object '{ url, method, fields }'.\nSee https://uppy.io/docs/aws-s3/#getUploadParameters-file for more on the expected format.`)
|
|
|
|
+ console.error(err)
|
|
|
|
+ throw err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return params
|
|
|
|
+ }
|
|
|
|
+
|
|
prepareUpload (fileIDs) {
|
|
prepareUpload (fileIDs) {
|
|
fileIDs.forEach((id) => {
|
|
fileIDs.forEach((id) => {
|
|
const file = this.uppy.getFile(id)
|
|
const file = this.uppy.getFile(id)
|
|
@@ -75,6 +90,8 @@ module.exports = class AwsS3 extends Plugin {
|
|
const paramsPromise = Promise.resolve()
|
|
const paramsPromise = Promise.resolve()
|
|
.then(() => getUploadParameters(file))
|
|
.then(() => getUploadParameters(file))
|
|
return paramsPromise.then((params) => {
|
|
return paramsPromise.then((params) => {
|
|
|
|
+ return this.validateParameters(file, params)
|
|
|
|
+ }).then((params) => {
|
|
this.uppy.emit('preprocess-progress', file, {
|
|
this.uppy.emit('preprocess-progress', file, {
|
|
mode: 'determinate',
|
|
mode: 'determinate',
|
|
message: this.i18n('preparingUpload'),
|
|
message: this.i18n('preparingUpload'),
|