2012-11-10 34 views
2

我有一個客戶想要在線銷售教程視頻。我已經從CF(這是公開)預覽了他的教程。現在我想使用c#sdk生成專用的,有時間限制的URL,以允許購買了教程的客戶在有限的時間段內下載它們。 付款確認後,我想要生成一個URL並通過電子郵件發送給客戶。cloudfront私人時間有限的網址

CF/.NET SDK支持嗎? 有人可以指點我一個樣本。我搜索了Google,並且得到了一些信息超載。來自不同版本的sdk /管理控制檯的不同示例。請幫助我理解這一切:)

回答

4

如果你看一下類Amazon.CloudFront.AmazonCloudFrontUrlSigner具有用於創建presigned URL私人發行的輔助方法。例如,此代碼段創建一個有效期爲一天的網址。

var url = AmazonCloudFrontUrlSigner.GetCannedSignedURL(AmazonCloudFrontUrlSigner.Protocol.http, domainName, cloudFrontPrivateKey, file, cloudFrontKeyPairID, DateTime.Now.AddDays(1)); 

有在該類其他實用方法加入更多的具體的訪問規則。

注意,在這晚奧格斯特

-1

您無法使用CloudFront(CF)執行此操作,但您可以直接使用S3執行此操作。您只需調用GetPreSignedURL函數以生成特定(專用)S3項目的時間限制URL。此方法在tutorial here中進行了介紹。

最簡單的代碼示例是這樣的:

AmazonS3 client; 

GetPreSignedUrlRequest request = new GetPreSignedUrlRequest(); 
request.WithBucketName(bucketName); 
request.WithKey(objectKey); 
request.Verb = HttpVerb.GET; // Default. 
request.WithExpires(DateTime.Now.AddMinutes(5)); 

string url = client.GetPreSignedURL(request); 
+0

對不起,這並不正確。 CloudFront支持私人分配。我已經完成了。當我回家時,我會添加自己的解決方案。 –

2

是亞馬遜S3以及CloudFront的都支持preSignedUrl接入出來的SDK版本1.5.2.0加入這一類。如果您希望更快地傳送內容,則應使用CloudFront。 Norm Johanson先生說的是正確的。要生成簽名的網址,您需要使用公私密鑰對。您可以使用您自己的密鑰對,並讓您與亞馬遜S3帳戶關聯,或者您也可以通過亞馬遜S3帳戶生成並下載以生成預先註冊的url

相關問題