Amazon S3 téléchargement avec des autorisations publiques
Je suis en utilisant le Amazon SDK de C# et en essayant de télécharger un fichier, mais par défaut, il dispose des autorisations restreintes. Je tiens à rendre accessible au public, mais je n'arrive pas à trouver comment le faire dans le cadre de la mise en ligne.
Mon seau est public, mais quand j'ai télécharger un nouveau fichier à l'aide du code ci-dessous, le fichier que j'ai télécharger est pas public.
Quelqu'un a dû le faire avant?
public class S3Uploader
{
private string awsAccessKeyId;
private string awsSecretAccessKey;
private string bucketName;
private Amazon.S3.Transfer.TransferUtility transferUtility;
public S3Uploader(string bucketName)
{
this.bucketName = bucketName;
this.transferUtility = new Amazon.S3.Transfer.TransferUtility("XXXXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
}
public void UploadFile(string filePath, string toPath)
{
AsyncCallback callback = new AsyncCallback(uploadComplete);
transferUtility.BeginUpload(filePath, bucketName, toPath, callback, null);
}
private void uploadComplete(IAsyncResult result)
{
var x = result;
}
}
Vous devez vous connecter pour publier un commentaire.
La solution par Tahbaza est correct, mais il ne fonctionne pas dans les versions ultérieures de SDK AWS (2.1+)...
Envisager d'utiliser les éléments suivants pour 2.1+ versions du SDK:
Trouvé, il est nécessaire d'utiliser un
TransferUtilityUploadRequest
:uploadRequest.BucketName
pour le téléchargement de travailler.TransferUtilityUploadRequest
objet n'a plus deAddHeader
méthode. La réponse correcte est maintenant danielonthenet de l'.Je l'ai fait avant, et en C#, mais pas avec votre bibliothèque (ce qui peut être d'une aide limitée).
L'idée est d'envoyer une liste d'en-tête avec le fichier.
C'est une façon de le faire qui devraient vous diriger dans la bonne direction.
Voici également un lien à quelques AWS docs.
Envisager CannedACL approche, illustrée dans le follwing extrait de:
Vous pouvez utiliser la propriété CannedACL de Amazon.S3.De modèle.PutObjectRequest de télécharger des fichiers à S3 comme indiqué ci-dessous,