2017-10-19 69 views
0

好吧,所以我是AWS新手。我想製作一個存儲少量用戶數據的應用程序。 S3似乎是存儲數據的方式。有沒有辦法使用S3自動創建多個存儲空間?比方說,我做了一個android應用程序,人們將它安裝在他們的手機上。他們每個人都會自動獲得S3存儲空間嗎?我怎麼做?感謝AWS S3在多個設備上

+0

你可能想在https://aws.amazon.com/cognito/這將允許你存儲少量的每用戶數據的讀了起來,並在他們的設備同步。 S3對您的使用情況可能有些過分。 – jarmod

回答

1

您可以創建一個S3桶將項目與文件夾(依賴於架構,可以爲一個客戶)。這樣,您將擁有包含所有用戶數據的s3服務實例。

0

Amazon S3只是一個對象存儲系統。你如何使用它完全取決於你。

如果你想存儲在一個每個用戶基礎信息,那麼你就需要考慮另外安全數據如何存儲

如果意圖是用戶可以訪問某些對他們來說是私人的信息(而不是被任何人公開顯示),那麼您首先需要控制對數據的訪問。

  • 對於公共信息,不需要身份驗證,
  • 對於私人信息,有什麼需要,以確定他們被允許訪問,然後訪問權限授予

你應該爲每個用戶提供永久的AWS憑證(訪問密鑰,密鑰)。這些憑證僅適用於您的IT運營人員(您!)和您的應用程序。

這使得兩種選擇:

  • 你的中央服務器可以使用AWS安全令牌服務生成臨時訪問憑證,同時指定他們有什麼訪問權限(例如,一個特定的S3存儲和路徑訪問,或其他AWS服務(如DynamoDB))。或
  • 爲存儲在Amazon S3中的特定對象生成預簽名URL

根據您的使用情況,似乎更適合使用預先簽署的網址。基本上,流程如下:

  • 您的應用程序會向中央服務器發送請求,請求訪問對象。
  • 服務器(或者更確切地說,您編寫的應用程序在中央服務器上運行)會驗證其身份並確認應該允許其訪問存儲在Amazon S3中的對象。
  • 中央服務器然後生成預簽名URL授予以亞馬遜S3對象時間限制的訪問,併發送的URL返回到客戶端應用程序
  • 然後,客戶端應用程序使用的URL來檢索數據從Amazon S3

只有你的中央服務器上運行的應用程序需要AWS憑據。然後,它使用這些憑證來生成可供客戶端應用程序使用的預簽名URL。

順便說一句,在中央服務器上的應用程序實際上並不需要在服務器上運行。您可以使用AWS API網關將請求發送到AWS LAMBDA功能,可進行邏輯和發回的響應。這將是一個無服務器的解決方案,但仍與集中的邏輯。