Resmimi Request.Files [0] 'dan aldım. Şimdi, bu resmi S3'e nasıl yüklerim? AWS .NET API'sinde, string olan bir nesneyi yerleştirirken ContentBody'yi belirtmeniz gerektiğini görüyorum. Dosyamın içerik gövdesini nasıl alabilirim?ASP.NET MVC - Amazon S3'e görüntü yükleme
cevap
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);
Büyük olasılıkla bu bir Base64 kodlu dizedir, ancak emin olmak için S3 belgelerini kontrol etmelisiniz. Öyleyse, Convert.ToBase64String() kullanmalı ve bayt dizisini geçirmelisiniz.
İşte deneyebileceğiniz bazı örnek kod. Bunu test etmedim ama doğru bir fikir edinmek yardımcı olacaktır: klasörleri kullanmak ve tüm kullanıcıların salt okunur erişim izni nasıl
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
}
işe yaramadı Yani, ancak yaptığımız çalışmalar a inputStream özelliği olarak file.InputStream kullanılarak ne PutObjectRequest nesnesi. Yardım ettiğin için teşekkür ederim! –
Biraz daha detay. 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);
}
Daha detay için mevcuttur: http://bradoyler.com/post/3614362044/uploading-an-image-with-aws-sdk-for-net-c
Blog yayınının bağlantısı kesildi. – swbradshaw
PurObjectRequest request = new PutObjectRequest()
{
BucketName = _bucketName,
CannedACL = S3CannedACL.PublicRead,
Key = string.Format("folderyouwanttoplacethefile/{0}", file.FileName),
InputStream = file.InputStream
};
YourS3client.PutObject(request);
Lütfen bunun nasıl çalıştığı hakkında biraz açıklama ekleyin. –
- 1. ASP.NET MVC MVC framework üzerinden yavaş görüntü yükleme?
- 2. ASP.NET MVC3: Görüntü denetleyiciden yükleme
- 3. Amazon Web Hizmetleri + ASP.NET MVC 3 + MySql
- 4. ajax üzerinden Asp.net mvc dosyası yükleme
- 5. Dosyaları ASP.NET MVC ile Veritabanına Karşıya Yükleme
- 6. asp.net mvc uygulama ve dosya yükleme
- 7. Amazon API ağ geçidi ve lambda aracılığıyla görüntü yükleme
- 8. Amazon s3 toplu yükleme
- 9. Asp.net mvc'de Amazon S3'den nasıl görüntü dosyası gösterebilirim?
- 10. ASP.NET MVC JQuery
- 11. OpenCPU'yu Amazon Linux örneğine yükleme
- 12. asp.net mvc app_data klasörü
- 13. ASP.NET MVC
- 14. Asp.Net Mvc
- 15. ASP.NET MVC
- 16. - ASP.Net MVC
- 17. ASP.NET MVC
- 18. ASP.Net MVC
- 19. ASP.NET MVC
- 20. asp.net MVC
- 21. Asp.net mvc
- 22. ASP.Net MVC
- 23. ASP.NET MVC
- 24. Asp.net mvc
- 25. ASP.NET MVC
- 26. ASP.NET MVC
- 27. ASP.NET MVC
- 28. ASP.Net MVC
- 29. Asp.net MVC
- 30. ASP.NET mvc
Kod biti için teşekkürler, benim için de bazı şeyleri temizler. – Chaddeus