2013-10-09 7 views
6

So Datei, wenn ich eine Datei hochladen bis s3, ich mag die ursprünglichen Dateinamen behalten, die, wenn ichfeine Uploader Präfix hinzufügen Namen auf s3

ObjectProperties verwenden scheint zu funktionieren: {key: „filename“} ,

Ich möchte auch ein Präfix zum Objekt in S3 hinzufügen. Wenn ich also foo.jpg hochlade, möchte ich, dass der S3-Objektschlüssel "12345/foo.jpg" lautet. Ich werde durch die Dokumentation und ich komme nicht mit einer klaren Richtung bis in zu gehen.

Danke, j

Antwort

10

Um einen Präfix zu Ihrem Objekt des keyname fügen Sie die objectProperties.key Option verwenden können, wie so

,

nicht-jQuery Uploader

var uploader; 

uploader = new qq.s3.FineUploader({ 
    // .... 
    objectProperties: { 
     key: function (id) { 
      return '12345/' + uploader.getName(id); 
     } 
    } 
}); 

jQuery Uploader

$("#fineuploader-s3").fineUploaderS3({ 
    // .... 
    objectProperties: { 
     key: function (fileId) { 
      return '12345/' + $("#fineuploader-s3").fineUploader("getName",fileId); } 
    } 
}); 
+0

Perfekt. Dies funktionierte für mich .. objectProperties: {Schlüssel: Funktion (FileId) {Rückkehr '12345 /' + $ ("# FineUploader-s3"). FineUploader ("getName", FileId); }}, – Josh

+0

Hätten Sie die Frage als 'jquery' markiert, wäre Mark in der Lage gewesen, jQuery in seinem Beispiel zu verwenden und Ihnen genau diesen Code zur Verfügung zu stellen. –

+0

Aktualisiert, um Beispiele mit beiden Uploader-Typen anzuzeigen. Bitte akzeptieren Sie, wenn es funktioniert! –

8

Mark Antwort auf, wenn Sie möchten, dass Fineuploader die UUID erzeugt, aber sie wollte immer noch die Datei in einem bestimmten Ordner innerhalb der Eimer Sie die gleiche Methode verwenden, können nur hochgeladen werden, aber die Methode getUuid angeben. So stellen Sie sicher, dass Sie die Dateierweiterung aus dem ursprünglichen Dateinamen extrahieren zuerst wie folgt:

Nicht jquery Uploader

uploader = new qq.s3.FineUploader({ 
    // .... 
    objectProperties: { 
     key: function (fileId) { 

      var filename = uploader.getName(fileId); 
      var uuid = uploader.getUuid(fileId); 
      var ext = filename.substr(filename.lastIndexOf('.') + 1); 

      return 'folder/within/bucket/' + uuid + '.' + ext; 

     } 
    } 
}); 

jQuery Uploader

$("#fineuploader-s3").fineUploaderS3({ 
    // .... 
    objectProperties: { 
     key: function (fileId) { 

      var filename = $('#fineuploader-s3').fineUploader('getName', fileId); 
      var uuid = $('#fineuploader-s3').fineUploader('getUuid', fileId); 
      var ext = filename.substr(filename.lastIndexOf('.') + 1); 

      return 'folder/within/bucket/' + uuid + '.' + ext; 
     } 
    } 
}); 
0

ich würde

return prefix + '/' + $('#' + tagid).fineUploader("getName", fileId).replace(/[^\w\s.-]/gi, ''); 

, um nicht-alphanumerische Werte zu entfernen.

Verwandte Themen