asp.net - net路由 - signalr aspnet core




Amazon S3 Url重寫 (5)

如果我明白,你需要指定你的域名,而不是S3。 要做到這一點,你需要編寫一個處理程序,它將作為亞馬遜服務器的代理。

但是,這實際上會使您的帶寬增加一倍,因為您需要將圖像發送到客戶端以及為S3獲取圖像。

我不確定是否有任何S3具體的方式來處理這個問題。

以下是從Amazon S3,CNAME記錄中獲取的Amazon S3特定方式

普通用戶可以註冊Amazon S3主機並開始上傳文件 - 接受託管文件的默認URL結構:

http://s3.amazonaws.com/your-bucket/some-file.txt如果您計劃使用S3來託管媒體文件(更具體地說是Flash文件),您將會遇到Adobe的跨域安全策略。 該修復需要映射您的託管S3文件,看起來好像他們是從您自己的域名 - 虛擬主機服務。 最簡單和最有吸引力的方法將是這樣一個託管文件的URL:

http://s3.your-site.com/some-file.txt要開始,請在S3上創建一個您希望作為託管文件的根目錄的存儲桶。 對於這個例子,你的S3存儲桶將是:

s3.your-site.com最重要的步驟是將相應的CNAME記錄添加到您的DNS設置。

名稱類型數據s3.your-site.com CNAME s3.amazonaws.com。 預計您的新DNS設置需要長達24-48小時才能解決。

如何將Amazon S3網址從http://bucket.amazons3.com/imagepath.jpg更改為http://image.mydomain.com/imagepath.jpg

編輯:基本上這是因為我的用戶隱藏亞馬遜s3網址的全部原因。

我正在考慮一個HttpModule,它會將來自image.mydomain.com的請求重定向到bucket.amazons3.com。 但是這將需要我的服務器首先處理所有的請求然後轉發。


我看到它的方式有兩種選擇:

  1. 按照你所說的重新定向,或者
  2. 從S3請求資源,然後通過您的響應將其返回給用戶。

因此,如果用戶想要查看http://image.mydomain.com/imagepath.jpg資源,您可以從http://bucket.amazons3.com/imagepath.jpg內部請求原始資源,並在本地保存並返回它給請求的用戶。

它確實花費了大量的帶寬,但如果這是您的關鍵要求,這應該是路要走。


這聽起來像你想要生成到期的鏈接,

http://www.ioncannon.net/s3/21/creating-s3-urls-that-expire-using-php/

然後,您可以即時生成這些文件,並通過應用程序將其作為重定向提供。 所以有人要求, http://images.mydomain.com/img123.jpg

並生成一個不錯的,自動過期的S3網址, http: //mydomain.s3.amazonaws.com/T154456.jpg?AWSAccessKeyId=1ESOMESPECIALIDJJAKJ6RA82&Expires=1241372284&Signature=ddfr%2BlkoSEPAL%2BGbMwlMzj6q%2BCY% 3D

那麼你將用戶重定向到自動生成的網址。 這樣,即使用戶查看html源代碼,他們也只能看到返回到您的網站的url,但是當他們點擊鏈接時,他們被重定向到amazon,所以您不必擔心通過代理請求你的服務器和吃不必要的帶寬。


布賴恩的答案是正確的,拉梅什和文森特的錯誤。 設置CNAME為s3.amazonaws.com導致我不必要的重定向,正如AWS虛擬主機桶指南中提到的。


為了詳細說明Tez的答案,Amazon S3提供了通過虛擬主機桶映射自定義域的支持。

要做到這一點,您的存儲桶的名稱必須是您希望映射的完整主機名。

因此,使用原始問題中的示例,創建一個名為image.mydomain.com的S3存儲桶並image.mydomain.com設置一個CNAME:

image.mydomain.com  CNAME  image.mydomain.com.s3.amazonaws.com.




amazon-s3