2017-06-06 93 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

相關問題