【发布时间】:2013-11-28 03:01:31
【问题描述】:
有谁知道是否可以使用 Fine Uploader 上传到 S3 存储桶内的文件夹?我尝试向请求端点添加“\foldername”,但没有成功。
谢谢。
【问题讨论】:
标签: javascript amazon-s3 upload fine-uploader
有谁知道是否可以使用 Fine Uploader 上传到 S3 存储桶内的文件夹?我尝试向请求端点添加“\foldername”,但没有成功。
谢谢。
【问题讨论】:
标签: javascript amazon-s3 upload fine-uploader
S3 没有文件夹。一些 UI(例如 AWS 控制台中的 UI)和更高级别的 API 可能会提供这个概念,作为一种抽象,但 S3 对文件夹没有任何原生理解,只有键。您可以创建所需的任何密钥并将其传递给 Fine Uploader S3,它会在给定特定密钥的情况下存储该文件。例如,“folder1/subfolder/foobar.txt”是一个完全有效的键名。默认情况下,Fine Uploader 会生成一个 UUID 并将其用作对象的键名,但您可以通过提供 objectProperties.key 值轻松更改它,该值也可以是一个函数。有关详细信息,请参阅S3 objectProperties option in the documentation。
【讨论】:
$("#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;
}
}
});
【讨论】:
这对我有用:
var uploader = new qq.s3.FineUploader({
// ...
objectProperties: {
key: function(fileId) {
return 'folder/within/bucket/' + this.getUuid(fileId);
}
}
});
【讨论】:
上传到服务器之前可以修改路径:
uploader.on('submit', (id) => {
const key = s3Uploader.methods.getUuid(id)
const newkey = 'folder/within/bucket/' + key
uploader.methods.setUuid(id, newkey)
})
【讨论】: