2017-10-05 77 views
0

如何訪問對象從Amazon S3的使用getSignedUrl操作如何訪問對象從Amazon S3的使用getSignedUrl操作

我真的能夠利用getSignedUrl方法來生成標識的URL。

var url = s3.getSignedUrl('getObject',paramsurl);

使用此URL我可以訪問s3的完整對象嗎?我發起http請求,但它只返回1000作爲xml響應。如何找到下一組對象並推送到新陣列?

+0

訪問哪裏?你甚至可以在瀏覽器地址欄中發佈該url值,它會下載文件(對象) –

+0

@ Lemuel Nabong我使用這個signedurl進行http調用,當我這樣做時,它只返回1000個對象作爲響應,但是我的s3存儲區有1800多條記錄。如何獲得記錄從1001到1800. –

+0

您正在爲'/' - 桶列表的URL簽名 - 而不是'/ some-object.jpg'(一個路徑和文件名,S3調用*對象鍵*) 。 –

回答

0

您的問題似乎與單個ListObjects調用中返回多少個S3對象有關。

如果是這樣,當您調用列出AWS資源的底層API時,API通常會默認返回1000個項目。它還會返回一個'下一個標記',您可以在隨後調用相同的API時使用它來返回下一批物品。

有時候,你也可以指定你的請求中的「最大項」或「最大鍵」,讓您可以覆蓋1000

PS的默認值,如果您使用AWS的SDK那麼這個批處理的結果是通常對你隱藏。

+0

非常感謝你一個簡單的問題我presigned網址是這樣的:https://test1.s3.amazonaws.com/?AWSAccessKeyId=AKIAIQMZJQSPTXQWLQVA&Expires=1507228054&Signature=OC%2FeiUdJgZATV%2BQLy0FYOMxXfjA%3D 現在我可以使用s3.listObjectsV2方法使用這些Access鍵和Signature從s3獲取對象嗎? –

+0

預先簽名的URL專門用於下載或上傳對象,以便下載器/上傳器不需要知道任何憑據。它們與列表對象無關。您通常會使用相同的AWS憑證(訪問密鑰和密鑰)來列出對象並生成預先簽名的URL。然後,您可以將這些預先簽名的URL提供給客戶端用於下載/上傳對象。 – jarmod

+0

基本上我只有我的團隊提供的預簽名url才能獲得臨時對象的訪問權限。他們只會調用該API來獲取簽名的URL並將其發送給JS函數,以便js函數必須從s3獲取對象並在客戶端更新表。一旦我得到一個對象,我將解構它並存儲到我的數組中。 –