Fine Uploader を使用して S3 バケット内のフォルダにアップロードできるかどうかは誰にもわかりませんか? リクエスト エンドポイントに「\foldername」を追加しようとしましたが、うまくいきませんでした。
ありがとう。
Fine Uploader を使用して S3 バケット内のフォルダにアップロードできるかどうかは誰にもわかりませんか? リクエスト エンドポイントに「\foldername」を追加しようとしましたが、うまくいきませんでした。
ありがとう。
S3 にはフォルダがありません。一部の UI (AWS コンソールの UI など) と高レベルの API は、抽象化としてこの概念を提供する場合がありますが、S3 にはフォルダーのネイティブな理解はなく、キーのみが理解されます。任意のキーを作成して Fine Uploader S3 に渡すことができます。Fine Uploader S3 は、その特定のキーを指定してそのファイルを保存します。たとえば、「folder1/subfolder/foobar.txt」は完全に有効なキー名です。デフォルトでは、Fine Uploader は UUID を生成し、それをオブジェクトのキー名として使用しますが、objectProperties.key
値を指定することでこれを簡単に変更できます。これは関数でもかまいません。詳細については、ドキュメントのS3objectProperties
オプションを参照してください。
これは私のために働く:
var uploader = new qq.s3.FineUploader({
// ...
objectProperties: {
key: function(fileId) {
return 'folder/within/bucket/' + this.getUuid(fileId);
}
}
});
$("#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;
}
}
});
サーバーにアップロードする前にパスを変更できます。
uploader.on('submit', (id) => {
const key = s3Uploader.methods.getUuid(id)
const newkey = 'folder/within/bucket/' + key
uploader.methods.setUuid(id, newkey)
})