将对象上传到存储桶中的S3文件夹

时间:2020-07-29 13:01:20

标签: node.js amazon-s3 aws-sdk

我在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

有人可以帮我弄清楚发生了什么事吗。

预先感谢

0 个答案:

没有答案