2012-12-18 76 views
0

我在創建一個iOS應用程序並使用S3目前沒有發行版(CloudFront)作爲測試之前,我會泄露創建一個完整的應用程序。在S3管理控制檯中,我在我所居住的新加坡製作了我的存儲桶,因此CloudFront並不是真正需要這個演示。我必須設置這樣的端點:CloudFront和S3的端點問題

[s3Client setEndpoint: [AmazonEndpoints s3Endpoint: AP_SOUTHEAST_1]]; 

哪些指向新加坡,端點是桶需要發送數據的地方? (當用戶)

所以現在我有兩個問題

  • 如果我使用CloudFront的,做我需要設定一個終點?我如何在iOS中使用CloudFront,然後生成簽名的URL?

  • 如果用戶使用的應用程序在隨機的國家讓說,什麼終端,如果我需要設置(與CloudFront的),我將它設置爲?我會通過語言環境找到他們目前的國家,並找到它最接近的端點嗎?

謝謝!

回答

4

CloudFront中的一組文件被稱爲「分發」。當您設置分配時,您需要指定一個或多個「起源」,這是您向用戶提供的文件的標準來源。

在你的情況下,創建一個新的發行版,並指定S3存儲桶作爲原點。然後在您的應用程序中,您將其引用爲:http://xxxxxxx.cloudfront.net/hello.png而不是http://mybucket.s3.amazonaws.com/hello.png。第一次有人請求並緩存時,Cloudfront將自動從S3存儲桶中提取hello.png

CloudFront的自動(和近瞬時)檢測該邊緣的位置是最靠近用戶通過基於網絡延遲路由它們。你不必自己做任何這些計算。

我建議你read the caveats that I've listed here雖然在應用程序中使用CloudFront的面前。

+0

但是,我會將端點設置爲?現在我必須設置我的Amazon S3客戶端的端點,否則它會崩潰。 我從來沒有真正使用提供的鏈接,我使用客戶端向存儲桶名稱發送請求...但是我上傳的是字典的數據表示,無法通過鏈接進行訪問和下載。我將如何實現這個鏈接,這個URL參考不應該在瀏覽器中工作,這就很容易訪問私有財產,你會生成一個簽名的URL。我嘗試過使用FireFox S3管理器(管理分佈),但該網址在Safari中不起作用。 – MCKapur

+0

它說:SignatureDoesNotMatch我們計算的請求籤名與您提供的簽名不匹配。檢查您的密鑰和簽名方法 我可以嘗試在我自己的代碼中生成一個URL,然而....並查看是否有效。但是,我又如何實現CloudFront簽名的鏈接?是否有文檔/示例(AWS通常有這些),您可以指向我?我還沒有設法找到一個顯示如何做到這一點... – MCKapur

+0

你可以看看我在CloudFront上的新問題,它的問題我有,也許你可以幫助...謝謝! – MCKapur