2012-11-10 2 views
2

J'ai un client qui veut vendre des tutoriels vidéos en ligne. J'ai déjà eu des aperçus de ses tutoriels en streaming de CF (This is public). Maintenant, je veux utiliser le C# sdk pour générer des URL privées et limitées dans le temps pour permettre aux clients qui ont acheté les tutoriels de les télécharger pour une période de temps limitée. Une fois le paiement confirmé, je souhaite générer une URL et l'envoyer au client par courrier électronique.cloudfront private time limited url

Est-ce que CF/.NET SDK prend cela en charge? Quelqu'un peut-il me pointer sur un échantillon. J'ai cherché sur Google et j'ai eu un peu de surcharge d'informations. Différents exemples de différentes versions de sdk/console de gestion. S'il vous plaît aidez-moi à donner un sens à tout cela :)

Répondre

4

Si vous regardez la Amazon.CloudFront.AmazonCloudFrontUrlSigner de classe qui a des méthodes d'aide pour la création d'URL presigned aux distributions privées. Par exemple, cet extrait de code crée une URL valide un jour.

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

Il existe d'autres méthodes utilitaires dans cette classe pour ajouter des règles d'accès plus spécifiques.

Notez cette classe a été ajouté dans la version 1.5.2.0 du SDK qui est sorti à la fin Augest

-1

Vous ne pouvez pas faire cela avec CloudFront (CF), mais vous pouvez le faire directement avec S3. Vous appelez simplement la fonction GetPreSignedURL pour générer une URL limitée dans le temps à un élément S3 (privé) spécifique. Cette approche est couverte par un tutorial here.

L'échantillon de code le plus simple est la suivante:

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

Désolé, mais ce n'est pas vrai. CloudFront prend en charge les distributions privées. Je l'ai déjà fait. Je vais ajouter ma propre solution quand je rentre à la maison. –

2

Oui Amazon S3, ainsi que CloudFront à la fois le soutien de l'accès preSignedUrl. Si vous souhaitez accélérer la diffusion du contenu, vous devez utiliser CloudFront. M. Norm Johanson dit vrai. Pour générer l'URL signée, vous aurez besoin d'une paire de clés Public-Privé. Vous pouvez utiliser votre propre paire de clés et vous associer avec votre compte Amazon S3 ou vous pouvez également le générer sur amazon s3 et télécharger pour générer l'URL prédéfinie