Pab*_*emé 9 amazon-s3 amazon-web-services node.js
我正在使用AWS Lambda函数创建一个文件并将其保存到S3上的存储桶中,它运行正常.执行该putObject
方法后,我得到一个data
对象,但它只包含Etag
最近添加的对象.
s3.putObject(params, function(err, data) {
// data only contains Etag
});
Run Code Online (Sandbox Code Playgroud)
我需要知道我可以在浏览器中使用的确切URL,以便客户端可以看到该文件.该文件夹已经公开,如果我从S3控制台复制链接,我可以看到该文件.
我试过使用,getSignedUrl
但它返回的URL用于其他目的,我相信.
谢谢!
jar*_*mod 17
当您调用PutObject时,您提供了存储桶和对象的密钥.您可以简单地组合这些来制作对象的URL,例如:
因此,例如,如果您的存储桶是pablo而对象键是dogs/toto.png,请使用:
有关特定于区域的存储桶,请参阅使用Amazon S3存储桶.
注意:对象键的一般指导,其中某些字符需要特殊处理.例如,空格被编码为+(加号),而加号被编码为%2B.还在这里.
如果您有 s3bucket 和 filename 对象并想提取 url,这里有一个选项:
function getUrlFromBucket(s3Bucket,fileName){
const {config :{params,region}} = s3Bucket;
const regionString = region.includes('us-east-1') ?'':('-' + region)
return `https://${params.Bucket}.s3${regionString}.amazonaws.com/${fileName}`
};
Run Code Online (Sandbox Code Playgroud)