所以,當我將文件上傳到S3,我想保留原來的文件名,這似乎如果我使用精細上傳添加前綴的S3文件名
objectProperties工作:{鍵:「文件名」} ,
我也想給S3中的對象添加一個前綴。所以如果我上傳foo.jpg,我想S3對象鍵是'12345/foo.jpg'。我經歷的文檔,我不來了一個明確的方向在走。
感謝, Ĵ
所以,當我將文件上傳到S3,我想保留原來的文件名,這似乎如果我使用精細上傳添加前綴的S3文件名
objectProperties工作:{鍵:「文件名」} ,
我也想給S3中的對象添加一個前綴。所以如果我上傳foo.jpg,我想S3對象鍵是'12345/foo.jpg'。我經歷的文檔,我不來了一個明確的方向在走。
感謝, Ĵ
添加前綴到對象的鍵名,你可以使用objectProperties.key
選項像這樣,
非jQuery的上傳
var uploader;
uploader = new qq.s3.FineUploader({
// ....
objectProperties: {
key: function (id) {
return '12345/' + uploader.getName(id);
}
}
});
jQuery的上傳
$("#fineuploader-s3").fineUploaderS3({
// ....
objectProperties: {
key: function (fileId) {
return '12345/' + $("#fineuploader-s3").fineUploader("getName",fileId); }
}
});
,如果你喜歡Fineuploader產生的UUID,但你仍然想將文件上傳到你可以使用相同的方法,但指定的方法getUuid
桶中的某個文件夾添加到馬克的回答。只要確保你第一次提取從原來的文件名的文件擴展名,像這樣:
非jquery的上傳
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上傳
$("#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;
}
}
});
我會用
return prefix + '/' + $('#' + tagid).fineUploader("getName", fileId).replace(/[^\w\s.-]/gi, '');
以刪除非字母數字值。
完美。這對我有效.. objectProperties:{key:function(fileId){return'12345 /'+ $(「#fineuploader-s3」)。fineUploader(「getName」,fileId); }}, – Josh
如果您將問題標記爲「jquery」,Mark會在他的示例中使用jQuery併爲您提供此確切代碼。 –
已更新,以顯示兩種上傳類型的示例。請接受它是否有效! –