使用AWS SDK将文件上传到存储桶中的特定文件夹

2024-05-06

我正在使用节点开发人员工具包将图像上传到 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 是一个平面存储系统,实际上并不使用文件夹。

相反,密钥(文件名)包括完整路径对象的,例如:

folder1/folder2/foo.txt

Amazon S3 管理控制台确实显示文件夹内的存储桶内容,但它们是人工构造(称为常用前缀)让我们人类更容易理解。

因此,如果您想上传到特定文件夹,只需在密钥中包含完整路径它会起作用(或者更准确地说,假装工作!).

有趣的事实:您可以复制到不存在的文件夹,系统将为您“创建”该文件夹。然后,如果您删除该对象,该文件夹将被“删除”,因为它实际上从未存在过!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用AWS SDK将文件上传到存储桶中的特定文件夹 的相关文章

随机推荐