2017-10-04 13 views
0

Je suis en train de réviser une application pour utiliser un CloudFront privé plutôt que directement à partir de S3.CloudfFont GetObjectRequest équivalent à télécharger des fichiers à partir de S3

J'ai été en mesure de créer des URL signées et de remplir des picturboxes au besoin.

Je ne peux pas trouver l'équivalent CloudFront du GetObjectRequest ...

for (int num = 1; num < 16; num++) 
{ 

    GetObjectRequest request = new GetObjectRequest 
    { 
     BucketName = ContainerName, 
     Key = tempDownload + @"/" + num + ".jpg" 
    }; 

    try 
    { 
     //Issue request and remember to dispose of the response 
     using (GetObjectResponse response = s3Client.GetObject(request)) 
     { 
      string dest = Path.Combine(newFileFolder, tempDownload + num + ".jpg"); 
      if (!File.Exists(dest)) 
      { 
       response.WriteResponseStreamToFile(dest); 
      } 
     } 
    } 
} 

Je suis en train de télécharger des fichiers via CloudFront sur le disque dur de l'utilisateur de l'application.

+0

Pourquoi avez-vous créé des URL signées et ce que vous en avez fait? – Kannaiyan

Répondre

2

CloudFront n'a pas d'équivalent à GetObject. CloudFront est conçu pour extraire des données via les protocoles HTTP/HTTPS.

Si les fichiers que vous souhaitez télécharger sur l'ordinateur de votre utilisateur sont publics, vous pouvez simplement y accéder via l'URL http/https des distributions CloudFront. Si les fichiers que vous souhaitez télécharger sont privés, vous devez configurer une identité d'accès origine à Serve Private Content ou utiliser Pre-signed URLs via l'URL http/https de vos distributions CloudFront.

+0

Merci pour l'aide, mais j'ai déjà créé des URL pré-signés qui fonctionnent lors du remplissage des PictureBox dans mon application. J'utilise l'application Cloudberry qui a beaucoup aidé. Qu'est-ce que je recherche est le code qui obtient le fichier S3 via la demande d'URL signée de CloudFront et enregistré sur le disque dur de l'utilisateur? – Cfence

+0

Il existe un exemple de code C# pour générer une URL pré-signée CloudFront dans les liens que j'ai fournis. Avec cette URL, vous n'utiliserez pas AWS SDK pour télécharger les fichiers. Au lieu de cela, vous utiliserez 'HttpClient' de C# (par exemple) pour télécharger le fichier en tant qu'URL standard. –

+0

Merci beaucoup! C'était juste l'aide dont j'avais besoin. – Cfence