Tôi có hình của tôi từ Request.Files [0]. Bây giờ, làm cách nào để tải hình ảnh này lên S3? Tôi thấy rằng trong API AWS .NET, bạn phải chỉ định ContentBody khi đặt một đối tượng là một chuỗi. Làm cách nào để lấy nội dung của tệp của tôi?ASP.NET MVC - Tải hình ảnh lên Amazon S3
Trả lời
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);
Rất có thể đây là chuỗi được mã hóa Base64, nhưng bạn nên kiểm tra tài liệu S3 để chắc chắn. Nếu có, bạn nên sử dụng Convert.ToBase64String() và chuyển nó vào mảng byte.
Dưới đây là một số mã mẫu bạn có thể thử. Tôi đã không kiểm tra nó, nhưng nó sẽ giúp bạn có được ý tưởng đúng:
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
}
đó không làm việc, nhưng những gì đã làm công việc đã sử dụng file.InputStream là tài sản của một InputStream Đối tượng PutObjectRequest. Cảm ơn bạn đã giúp đỡ! –
chi tiết Hơi hơn với cách sử dụng các thư mục và cấp tất cả người dùng truy cập chỉ đọc. 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);
}
Chi tiết có sẵn ở đây: http://bradoyler.com/post/3614362044/uploading-an-image-with-aws-sdk-for-net-c
Bài đăng trên blog là liên kết chết. – swbradshaw
PurObjectRequest request = new PutObjectRequest()
{
BucketName = _bucketName,
CannedACL = S3CannedACL.PublicRead,
Key = string.Format("folderyouwanttoplacethefile/{0}", file.FileName),
InputStream = file.InputStream
};
YourS3client.PutObject(request);
Vui lòng thêm một số giải thích về cách hoạt động của tính năng này. –
- 1. ASP.NET tải tệp lên Amazon S3
- 2. Tải hình ảnh lên trong ASP.NET MVC
- 3. Tại sao hình ảnh Amazon S3 của tôi tải chậm?
- 4. AWS S3 Tải hình ảnh lên ứng dụng Bucket iOS
- 5. Tải tệp trực tiếp lên Amazon S3 từ ứng dụng ASP.NET
- 6. Tải lên Dịch vụ S3 của Amazon từ iPhone App
- 7. Tải lên dựa trên trình duyệt cho Amazon S3?
- 8. tải lên dữ liệu canvas vào s3
- 9. Rails + Amazon s3 + tải lên tệp jquery: thanh tiến trình tải lên không hoạt động?
- 10. Tải lên nhiều phần HTML5 và Amazon S3
- 11. Kiểm tra vi-rút trước khi tải lên Amazon S3?
- 12. Tải lên tệp của Google App Engine và Amazon S3
- 13. Sử dụng PHP để tải lên Amazon S3
- 14. Tải lên Amazon S3 bằng cách sử dụng cURL/libcurl
- 15. ASP.NET MVC tải hình ảnh chậm qua khung MVC?
- 16. Tải lên tệp lớn lên asp.net MVC
- 17. amazon s3 - tải xuống hình ảnh thay vì hiển thị trong trình duyệt
- 18. Vị trí cửa hàng tải lên hình ảnh MVC ASP.NET (db vs filesystem)
- 19. Cách tải lên hình ảnh và hiển thị trên cùng một trang trong asp.net mvc 4
- 20. hình ảnh nhiều + lĩnh vực văn bản tải lên trong ASP.NET MVC
- 21. Tải lên thay đổi kích cỡ ảnh để S3
- 22. Tải tệp lên S3 bằng AWS SDK
- 23. Có thể thực hiện tải lên hàng loạt lên amazon s3 không?
- 24. Amazon S3 & Checksum
- 25. Thư viện .NET hoặc ứng dụng asp.net cho Amazon S3
- 26. html5 Tải lên hình ảnh
- 27. Tải ảnh lên ứng dụng MVC 4
- 28. Boto - tập tin tải lên đến một vị trí cụ thể trên Amazon S3
- 29. SignatureDoesNotMatch - Amazon S3 API
- 30. tải lên tệp jquery với đường ray carrierwave/s3
Cảm ơn bit bit, xóa mọi thứ cho tôi. – Chaddeus