因此,当我将文件上传到s3时,我想保留原始文件名,如果我使用
,它似乎可以正常工作objectProperties:{key:“filename”},
我还想在S3中为对象添加前缀。所以,如果我上传foo.jpg,我希望S3对象键为'12345 / foo.jpg'。我正在浏览文档,但我没有明确指示进入。
谢谢, Ĵ
答案 0 :(得分:10)
要为对象的键名添加前缀,您可以使用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); }
}
});
答案 1 :(得分:9)
如果您希望Fineuploader生成UUID但您仍希望将文件上传到存储桶中的某个文件夹,则可以添加Mark的答案,您可以使用相同的方法但指定方法{{1 }}。只需确保从原始文件名中提取文件扩展名,如下所示:
非jquery上传者
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;
}
}
});
答案 2 :(得分:0)
我会用
return prefix + '/' + $('#' + tagid).fineUploader("getName", fileId).replace(/[^\w\s.-]/gi, '');
以删除非字母数字值。