J'ai mon image de Request.Files [0]. Maintenant, comment puis-je télécharger cette image sur S3? Je vois que dans l'API AWS .NET, vous devez spécifier ContentBody lorsque vous placez un objet qui est une chaîne. Comment aurais-je le contenu de mon fichier?ASP.NET MVC - Téléchargement d'une image sur Amazon S3
Répondre
var file = Request.Files[0];
PutObjectRequest request = new PutObjectRequest();
request.BucketName = "mybucket"
request.ContentType = contentType;
request.Key = key;
request.InputStream = file.InputStream;
s3Client.PutObject(request);
Il s'agit probablement d'une chaîne codée en Base64, mais vérifiez la documentation S3. Si c'est le cas, vous devez utiliser Convert.ToBase64String() et lui passer le tableau d'octets.
Voici un exemple de code que vous pouvez essayer. Je ne l'ai pas testé, mais il devrait vous aider à obtenir la bonne idée:
if (Request.Files.Count >= 1) {
var file = Request.Files[0];
var fileContents = new byte[file.ContentLength];
file.InputStream.Read(fileContents, 0, file.ContentLength);
var fileBase64String = Convert.ToBase64String(fileContents);
// now you can send fileBase64String to the S3 uploader
}
qui ne fonctionnait pas, mais qu'est-ce que le travail utilisait file.InputStream comme la propriété d'un InputStream Objet PutObjectRequest. Merci de votre aide! –
détail un peu plus avec l'utilisation de dossiers et d'accorder à tous les utilisateurs un accès en lecture seule. Html:
C#
HttpPostedFileBase file = Request.Files[0];
if (file.ContentLength > 0) // accept the file
{
string accessKey = "XXXXXXXXXXX";
string secretKey = "122334XXXXXXXXXX";
AmazonS3 client;
using (client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKey, secretKey))
{
MemoryStream ms = new MemoryStream();
PutObjectRequest request = new PutObjectRequest();
request.WithBucketName("mybucket")
.WithCannedACL(S3CannedACL.PublicRead)
.WithKey("testfolder/test.jpg").InputStream = file.InputStream;
S3Response response = client.PutObject(request);
}
Plus de détails est disponible ici: http://bradoyler.com/post/3614362044/uploading-an-image-with-aws-sdk-for-net-c
L'article du blog est un lien mort. – swbradshaw
PurObjectRequest request = new PutObjectRequest()
{
BucketName = _bucketName,
CannedACL = S3CannedACL.PublicRead,
Key = string.Format("folderyouwanttoplacethefile/{0}", file.FileName),
InputStream = file.InputStream
};
YourS3client.PutObject(request);
S'il vous plaît ajouter quelques explications sur la façon dont cela fonctionne. –
- 1. S3 Amazon downloader
- 2. Téléchargement parallèle sur Amazon S3 en utilisant Ruby et amazon.rubyforge.org
- 3. Intégration Amazon S3
- 4. Amazon S3 - x-amz-meta
- 5. Téléchargement Amazon S3 POST (à partir de l'iPhone)
- 6. Téléchargement vers Amazon S3 Services à partir de l'application iPhone
- 7. Redirection d'objet Amazon S3
- 8. git et Amazon s3
- 9. Téléchargement vers Amazon S3 en utilisant cURL/libcurl
- 10. ClickOnce et Amazon S3
- 11. Autorisations Amazon S3
- 12. Amazon S3 et swfaddress
- 13. Création d'une solution de sauvegarde Amazon EC2 sur Amazon S3
- 14. Télécharger des fichiers directement sur Amazon S3 à partir de l'application ASP.NET
- 15. Amazon S3 Uploads File
- 16. Publier sur Amazon S3 avec Espresso
- 17. Sécurisation de l'hébergement ClickOnce sur Amazon S3
- 18. Amazon S3 Redirect sur accès refusé
- 19. Client Amazon S3 basé sur SOAP
- 20. Fichiers de visualisation Amazon S3
- 21. Contrôle de contrôle d'accès Amazon S3
- 22. Diffusion en continu avec Amazon S3
- 23. Paperclip et Amazon S3 Édition
- 24. Problème d'écrasement d'image Amazon S3/Cloudfront
- 25. Amazon S3 pour la livraison de logiciels
- 26. Amazon S3 - Images parfois 404
- 27. Bibliothèque .NET ou application asp.net pour Amazon S3
- 28. amazon s3 hébergement virtuel de seau
- 29. Arrêter un téléchargement autorisé de chaîne de requête en cours sur Amazon S3?
- 30. Comment séquencer des événements lors du téléchargement de fichiers volumineux sur Amazon S3?
Merci pour le bit de code, efface les choses pour moi aussi. – Chaddeus