我正在使用 Node 的开发人员工具包将图像上传到 AWS S3:
const aws = require('aws-sdk');
const s3Bucket = process.env.S3_BUCKET;
const s3 = new aws.S3({
signatureVersion: 'v4',
region: process.env.S3_REGION,
accessKeyId: process.env.S3_ACCESS_KEY_ID,
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY,
});
const s3Params = {
Bucket: s3Bucket,
Key: filename,
Expires: 60,
ContentType: filetype,
ACL: 'public-read',
};
这可行,但我怎样才能将图像上传到存储桶中的特定文件夹?
最佳答案
Amazon S3 是一个平面存储系统,实际上不使用文件夹。
相反,Key(文件名)包括对象的完整路径,例如:
folder1/folder2/foo.txt
Amazon S3 管理控制台确实会显示文件夹中的存储桶内容,但它们是一种人工构造(称为通用前缀),以便于我们人类更容易理解。
因此,如果您想上传到特定文件夹,只需在 key 中包含完整路径,它就会起作用(或者,更准确地说,假装起作用!).
有趣的事实:您可以复制到不存在的文件夹,该文件夹将为您“创建”。然后,如果您删除该对象,该文件夹将被“删除”,因为它实际上从未存在过!
关于node.js - 使用 AWS SDK 将文件上传到存储桶中的特定文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51214518/