12
votes

Comment définir une en-tête HTTP pour Amazon S3 Programmatiquement?

Je souhaite définir l'en-tête de date d'expiration pour les fichiers stockés dans S3 par mon application Web ASP.NET.

  • premier cas - pendant PutObject Demandes
  • second cas - mise à jour de date d'expiration une fois par mois pour Mettre à jour les dates d'expiration.

0 commentaires

3 Réponses :


19
votes

Comme vous utilisez ASP.NET, je suppose que vous utilisez le AWS .NET SDK .

Pour ajouter le Expire code> (ou tout autre en-tête HTTP) Lorsque vous téléchargez l'objet, ajoutez-le dans le cadre de la requête PutObject CODE>. P>

var req = new Amazon.S3.Model.CopyObjectRequest()
                 .WithDirective(Amazon.S3.Model.S3MetadataDirective.REPLACE)
                 .WithSourceBucket("mybucket")
                 .WithSourceKey("myfile.txt")
                 .WithDestinationBucket("mybucket")
                 .WithDestinationKey("myfile.txt");

req.AddHeader("expires", "Thu, 01 Dec 1994 16:00:00 GMT");

client.CopyObject(req);


4 commentaires

Merci pour votre réponse. Je vais le marquer comme accepté après que nous l'appliquerons en jour ou deux


Merci. Cela m'a aidé beaucoup!


@ BigJoe714 - Pas de problème. Merci pour les commentaires :)


Cette réponse est significativement plus utile que les Documents SDK sur cette question: Docs. Amazonwebservices.com/sdkfornet/latest/apidocs/html/... "ajoute l'en-tête à la collection d'en-têtes de la demande."



8
votes

Si vous utilisez le AWS SDK 2.x , la méthode "Addheader" n'est plus disponible. Pour ajouter une en-tête, vous devez simplement modifier directement la collection Header.

req.headers ["expire"] = "Thu, 01 décembre 1994 16:00:00 GMT";

Voici l'exemple modifié Geoff ci-dessus: < / p> xxx

Pour changer l'en-tête, c'est de la même manière: xxx


1 commentaires

Soyez prudent lorsque vous modifiez les en-têtes car votre code ci-dessus modifiera également la permission à pleinement privé s'il s'agissait, par exemple, en lecture publique. Pour conserver le même neaDacl spécifie-le dans la demande



2
votes

pour awssdk.s3 v3. * Ses fonctionne comme ceci: xxx


0 commentaires