Parcourir la source

companion: refactor metadata handling

Ifedapo Olarewaju il y a 6 ans
Parent
commit
8f7d414083
1 fichiers modifiés avec 11 ajouts et 6 suppressions
  1. 11 6
      packages/@uppy/companion/src/server/Uploader.js

+ 11 - 6
packages/@uppy/companion/src/server/Uploader.js

@@ -47,9 +47,8 @@ class Uploader {
     this.options = options
     this.token = uuid.v4()
     this.path = `${this.options.pathPrefix}/${Uploader.FILE_NAME_PREFIX}-${this.token}`
-    this.metadata = Object.assign({}, this.options.metadata || {})
-    this.metadata.filename = this.metadata.name || path.basename(this.path)
-    this.metadata.filetype = this.metadata.type
+    this.options.metadata = this.options.metadata || {}
+    this.uploadFileName = this.options.metadata.name || path.basename(this.path)
     this.streamsEnded = false
     this.duplexStream = null
     // @TODO disabling parallel uploads and downloads for now
@@ -343,7 +342,13 @@ class Uploader {
       resume: true,
       retryDelays: [0, 1000, 3000, 5000],
       uploadSize: this.bytesWritten,
-      metadata: this.metadata,
+      metadata: Object.assign(
+        {
+          // file name and type as specified by tus protocol
+          filename: this.uploadFileName,
+          filetype: this.options.metadata.type
+        }, this.options.metadata
+      ),
       /**
        *
        * @param {Error} error
@@ -388,8 +393,8 @@ class Uploader {
         [this.options.fieldname]: {
           value: file,
           options: {
-            filename: this.metadata.filename,
-            contentType: this.metadata.filetype
+            filename: this.uploadFileName,
+            contentType: this.options.metadata.type
           }
         }
       }