2017-06-06 91 views
1

我使用AWS lambda函数创建一个文件并将其保存到我的S3桶,这是工作的罚款。执行putObject方法后,我得到一个data对象,但它仅包含最近添加对象的Etag如何获得使用AWS-SDK在AWS S3文件的网址是什么?

s3.putObject(params, function(err, data) { 
    //data only contains Etag 
}); 

我需要知道我可以在浏览器中使用,因此客户端可以看到该文件的完整网址。该文件夹已经公开,我可以看到该文件,如果我从S3控制台复制链接。

我尝试使用getSignedUrl但它返回的URL被用于其他目的,我相信。

谢谢!

+0

预先注册的url可以用作下载链接,但是,它会在非公开项目的x分钟数之后过期。如果您的项目是公开的,最简单的方法就是使用可预测的模式简单地连接URL。 –

+0

*如果我复制从S3控制台链接*你看到那里的模式?桶中每个对象的URL遵循完全相同的模式。 –

回答

3

当你叫PutObject,您提供的桶和对象的关键。你可以简单地合并那些使对象的网址,例如:

因此,举例来说,如果你的水桶是巴勃罗和对象密钥是狗/ toto.png,用途:

对于特定区域桶,见Working with Amazon S3 Buckets

+0

谢谢!我认为链接在某些命名场景中很容易发生意外更改。 –

+0

有关命名注意事项的其他文章:https://stackoverflow.com/questions/7116450/what-are-valid-s3-key-names-that-c​​an-be-accessed-via-the-s3-rest-api – jarmod

相关问题