2

チュートリアル ビデオをオンラインで販売したいクライアントがいます。私はすでに彼のチュートリアルのプレビューを CF からストリーミングしています (これは公開されています)。ここで、c# SDK を使用して、期間限定のプライベート URL を生成し、チュートリアルを購入した顧客が期間限定でそれらをダウンロードできるようにしたいと考えています。支払いが確認されたら、URL を生成してクライアントにメールで送信したいと考えています。

CF/.NET SDK はこれをサポートしていますか? 誰かサンプルを教えてください。Google で検索したところ、少し情報過多になりました。さまざまなバージョンの SDK/管理コンソールからのさまざまな例。私がそれをすべて理解するのを手伝ってください:)

4

4 に答える 4

4

クラス Amazon.CloudFront.AmazonCloudFrontUrlSigner を見ると、署名付き URL をプライベート ディストリビューションに作成するためのヘルパー メソッドがあります。たとえば、次のコード スニペットは、1 日間有効な URL を作成します。

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

そのクラスには、より具体的なアクセス ルールを追加するための他のユーティリティ メソッドがあります。

このクラスは、Augest の後半にリリースされた SDK のバージョン 1.5.2.0 で追加されたことに注意してください。

于 2012-11-13T22:31:27.173 に答える
2

はい、Amazon S3 と CloudFront はどちらも preSignedUrl アクセスをサポートしています。より高速なコンテンツ配信が必要な場合は、CloudFront を使用する必要があります。ノーム・ヨハンソン氏は正しいと言っています。署名付き URL を生成するには、公開鍵と秘密鍵のペアが必要です。独自のキー ペアを使用して、Amazon S3 のアカウントに関連付けることができます。または、Amazon s3 アカウントで生成し、ダウンロードして署名付き URL を生成することもできます。

于 2012-11-22T05:43:57.733 に答える
1

GUIまたはS3SignURLのコードを使用して、URLに署名できます。

https://github.com/DigitalBodyGuard/S3SignURL

于 2012-12-15T20:31:39.943 に答える
-1

これは CloudFront (CF) ではできませんが、S3 で直接行うことができます。GetPreSignedURL関数を呼び出すだけで、特定の (プライベート) S3 アイテムへの時間制限のある URL を生成できます。このアプローチは、こちらのチュートリアルで説明されています。

最も単純なコード サンプルは次のとおりです。

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);
于 2012-11-12T18:27:36.267 に答える