簡體   English   中英

AWS S3-存儲和提供非私有映像

[英]AWS S3 - storing and serving non-private images

我是第一次使用Flysystem使用S3(在本例中為用戶個人資料頭像圖像)實現文件上傳。 目前,我已經創建了S3存儲桶,用戶可以上傳圖像,然后在存儲桶控制台中在線查看該圖像。

我現在需要能夠在被請求時顯示這些圖像(即查看該用戶的個人資料)。 我假設此過程將是生成URL(例如https://s3.my-region.amazonaws.com/my-bucket/my-filename.jpeg )並將其用作圖像標簽的src為此,必須將文件(或存儲桶)標記為公共。 在我看來,這是合理的,因為其中的文件不是真正的私有文件。 但是,在將存儲桶更新為公開狀態時,會顯示一條消息說明;

我們強烈建議您不要授予對S3存儲桶的任何公共訪問權限。

是否有其他不同或更安全的方法來實現像AWS的新手那樣的直接圖像鏈接?

出現警告是因為許多人無意間公開了信息。 但是,如果您對這些特定文件可以被Internet上的任何人隨時訪問感到滿意,那么您當然可以將各個對象公開,或者創建Amazon S3存儲桶策略以將特定路徑公開。

授予訪問權限的另一種方法是創建S3預簽名URL ,這是一個有時間限制的URL,它授予對私有對象的訪問權限。

您的應用程序將負責驗證是否應授予用戶訪問特定對象的權限。 然后它將生成URL,為訪問提供持續時間。 然后,您的應用程序可以將URL插入src字段,並且圖像將正常顯示。 但是,持續時間過去后,將不再可訪問。

當提供對私有文件的訪問權限時,通常會使用它-類似於DropBox在不公開文件本身的情況下提供對私有文件的訪問權限的方式。

我建議將cloudfront放在靜態資產的前端(無雙關),這樣一來,它將在整個數據中心(不僅是您上載的區域)內為您提供服務,而且我認為這會減少您的費用,因為它不會使用S3存儲桶中的帶寬。 這樣,您就可以向S3存儲桶授予cloudfront權限,而無需手動在存儲桶中設置公共文件。 Google如何為Cloudfront和S3設置IAM用戶以進行設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM