Nếu bạn đang sử dụng REST API để tải lên một đối tượng (lên đến 5GB) trong một hoạt động đơn lẻ, sau đó bạn có thể thêm tiêu đề Content-MD5 trong PUT yêu cầu của bạn. Theo các tài liệu S3 cho PUT, header Content-MD5 là:
Các base64 mã hóa 128-bit MD5 tiêu hóa của thông điệp (không có tiêu đề) theo RFC 1864. Tiêu đề này có thể được sử dụng như kiểm tra tính toàn vẹn thông báo để xác minh rằng dữ liệu giống với dữ liệu ban đầu được gửi. Mặc dù nó là tùy chọn, chúng tôi khuyên bạn nên sử dụng cơ chế Content-MD5 làm kiểm tra tính toàn vẹn từ đầu đến cuối.
Kiểm tra this answer về cách tính toán tiêu chuẩn MD5 128 bit được mã hóa base64. Nếu bạn đang sử dụng s3curl, bạn có thể bao gồm thông báo được tính toán trong tiêu đề yêu cầu của mình bằng cách sử dụng tùy chọn --contentMd5.
Nếu thông báo md5 do Amazon tính toán khi hoàn thành tải lên không khớp với thông báo md5 bạn đã cung cấp trong tiêu đề Content-MD5, Amazon sẽ trả lời với mã lỗi BadDigest.
Nếu bạn đang sử dụng tải lên nhiều phần, tiêu đề Content-MD5 đóng vai trò kiểm tra tính toàn vẹn cho từng phần riêng lẻ. Khi quá trình tải lên đa phần được hoàn thành, Amazon hiện không cung cấp cách xác minh tính toàn vẹn của tệp được lắp ráp.
Khá nhiều được đề cập trong http://stackoverflow.com/questions/1775816/how-to-get-the-md5sum-of-a-file-on-amazons-s3, mặc dù câu trả lời của @ svetianov trông hoàn chỉnh hơn một chút . –