我有一個客戶想要在線銷售教程視頻。我已經從CF(這是公開)預覽了他的教程。現在我想使用c#sdk生成專用的,有時間限制的URL,以允許購買了教程的客戶在有限的時間段內下載它們。 付款確認後,我想要生成一個URL並通過電子郵件發送給客戶。cloudfront私人時間有限的網址
CF/.NET SDK支持嗎? 有人可以指點我一個樣本。我搜索了Google,並且得到了一些信息超載。來自不同版本的sdk /管理控制檯的不同示例。請幫助我理解這一切:)
我有一個客戶想要在線銷售教程視頻。我已經從CF(這是公開)預覽了他的教程。現在我想使用c#sdk生成專用的,有時間限制的URL,以允許購買了教程的客戶在有限的時間段內下載它們。 付款確認後,我想要生成一個URL並通過電子郵件發送給客戶。cloudfront私人時間有限的網址
CF/.NET SDK支持嗎? 有人可以指點我一個樣本。我搜索了Google,並且得到了一些信息超載。來自不同版本的sdk /管理控制檯的不同示例。請幫助我理解這一切:)
如果你看一下類Amazon.CloudFront.AmazonCloudFrontUrlSigner具有用於創建presigned URL私人發行的輔助方法。例如,此代碼段創建一個有效期爲一天的網址。
var url = AmazonCloudFrontUrlSigner.GetCannedSignedURL(AmazonCloudFrontUrlSigner.Protocol.http, domainName, cloudFrontPrivateKey, file, cloudFrontKeyPairID, DateTime.Now.AddDays(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);
是亞馬遜S3以及CloudFront的都支持preSignedUrl接入出來的SDK版本1.5.2.0加入這一類。如果您希望更快地傳送內容,則應使用CloudFront。 Norm Johanson先生說的是正確的。要生成簽名的網址,您需要使用公私密鑰對。您可以使用您自己的密鑰對,並讓您與亞馬遜S3帳戶關聯,或者您也可以通過亞馬遜S3帳戶生成並下載以生成預先註冊的url
您可以使用S3SignURL中的GUI或代碼簽署您的URL
對不起,這並不正確。 CloudFront支持私人分配。我已經完成了。當我回家時,我會添加自己的解決方案。 –