我在React应用程序中使用AWS Node JS SDK。我需要上传多个文件。因此,在我的主要组件中,单击“上载”按钮时,我正在创建一个存储桶中的文件夹,并将bucketName和文件夹名称传递给将处理上传单个文件的子组件。
在“子组件”中,我有以下代码:
const s3 = new AWS.S3({
params: {Bucket: `${props.bucketName}/${props.folderName}`}
})
var params = {
Key: props.data.name,
ContentType: props.data.type,
Body: props.data
};
AWS.config.httpOptions.timeout = 0;
s3.putObject(params).on('httpUploadProgress', function(evt) {
var uploaded = Math.round(evt.loaded / evt.total * 100);
console.log(`File uploaded: ${uploaded}%`);
}).send(function(err, d) {
if (err){
// an error occurred, handle the error
console.log(err, err.stack);
return;
}
var fileUrl = d.Location;
console.log('File URL:', fileUrl);
uploadComplete();
alert('File is uploaded successfully!');
})
执行此代码后,将在S3 BucketName / FolderName // file中创建以下内容。 在FolderName之后创建一个没有名称的空目录,然后在其中上传文件。
但是我希望具有以下结构:BucketName / FolderName / file
有人可以帮我弄清楚发生了什么事吗。
预先感谢