由客户端-s3 Typescript 库上传时制作 S3 对象 public
Make S3 Object public when uploaded by client-s3 Typescript library
我正在使用 Typescript 代码将文件上传到 S3,如下所示:
import {PutObjectCommand, PutObjectCommandInput, S3Client} from "@aws-sdk/client-s3";
const s3 = new S3Client(config);
const uploadParams: PutObjectCommandInput = {
Bucket: bucketName,
Key: filename,
Body: fileData
};
await s3.send(new PutObjectCommand(uploadParams));
但是,我需要在上传后创建对象 public,以便将其作为静态网站的一部分进行访问,并且它是作为私有网站上传的。我如何告诉 s3 客户端也使它成为 public?
在uploadParams
中,您可以提供PutObjectRequest中描述的参数,包括ACL
。
或者,上传后,您可以使用 PutObjectAclCommand 和 public-read
固定 ACL。
另一种方法是通过 S3 存储桶策略简单地在 S3 存储桶 public 中创建所有对象,这样您就不必单独创建每个对象 public。这假定存储桶中的所有对象都设计为 public 可读,当然,静态站点通常就是这种情况。
我正在使用 Typescript 代码将文件上传到 S3,如下所示:
import {PutObjectCommand, PutObjectCommandInput, S3Client} from "@aws-sdk/client-s3";
const s3 = new S3Client(config);
const uploadParams: PutObjectCommandInput = {
Bucket: bucketName,
Key: filename,
Body: fileData
};
await s3.send(new PutObjectCommand(uploadParams));
但是,我需要在上传后创建对象 public,以便将其作为静态网站的一部分进行访问,并且它是作为私有网站上传的。我如何告诉 s3 客户端也使它成为 public?
在uploadParams
中,您可以提供PutObjectRequest中描述的参数,包括ACL
。
或者,上传后,您可以使用 PutObjectAclCommand 和 public-read
固定 ACL。
另一种方法是通过 S3 存储桶策略简单地在 S3 存储桶 public 中创建所有对象,这样您就不必单独创建每个对象 public。这假定存储桶中的所有对象都设计为 public 可读,当然,静态站点通常就是这种情况。