2012-08-08 95 views
0

我有一個分佈式系統,它由2個應用程序組成AB

B調用A的特定API,爲其執行底層工作流程,在此期間生成並上傳至S3的文件。 A在上傳之前對文件執行客戶端加密。對B的API響應是上傳文件的存儲桶+鏈接位置。
Amazon S3初學者查詢

現在在稍後的時間點B希望從S3下載文件。

這樣做有2種方式 -

  1. 實現下載功能在的盡頭在這種情況下就需要知道一個用來上傳AWS鍵。
  2. 一個暴露download功能使不會需要有一個使用上傳AWS鍵的知識。



選項2似乎是正確的方式去做事。
我的理解是否正確或者是否有第三種更合理的方法?

+1

基礎上的信息量有限,你已經回答了你自己的問題。選項2,如果A有B需要的東西,A應該是看門人,只公開需要的東西。 (要提供給B,客戶的數據)。 – hometoast 2012-08-08 14:35:26

回答

0

您不妨考慮使用查詢字符串驗證的「中途之家」。基本上,當B想要下載文件時,它向A請求下載鏈接。 A然後生成一個時間限制的pre-signed request URL,然後B可以用它直接從S3下載文件。

正如你已經標記了問題的「java」我假設你正在使用AWS的Java SDK,在這種情況下,你需要的方法generatePresignedUrlAmazonS3Client