【发布时间】:2016-06-16 07:58:34
【问题描述】:
我很困惑如何检查上传到 Amazon S3 的文件的完整性。我可以看到一些关于此的 StackOverflow 问题,但它们似乎使用较旧的 API,看起来与我现在使用的非常不同,它们指的是包含 md5 的 E-Tag,这似乎不再有效,或者对于超过 5GB 的文件。
所以,基本上,我使用 PHP 上传大文件(其中一些超过 70GB),使用 MultipartUploader 和 Try/Catch,如下所示:
try {
$result = $uploader->upload();
} catch (MultipartUploadException $e) {
$uploader = new MultipartUploader($s3, $file, array(
'state' => $e->getState()
));
}
我遇到了几个类似这样的错误:
将部分上传到分段上传时发生异常。以下部分有错误: - 第 7729 部分:在 ... 上执行“UploadPart”时出错导致
500 Internal Server Error响应:InternalError我们遇到了一个内部错误。恳求(截断...) InternalError(服务器):我们遇到了内部错误。请再试一次。 -InternalError我们遇到了一个内部错误。请重试。第 660 部分:在“...”上执行“UploadPart”时出错; AWS HTTP 错误:cURL 错误 56:SSL 读取:错误:00000000:lib(0):func(0):reason(0),errno 104(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html)(服务器):100 继续 -
第 6542 部分:在“...”上执行“UploadPart”时出错; AWS HTTP 错误:cURL 错误 52:来自服务器的空回复(请参阅 http://curl.haxx.se/libcurl/c/libcurl-errors.html)
所有这些似乎都落入了“MultipartUploadException”的Catch,它试图从当前状态再次上传。
但我仍然担心上传文件的完整性,所以我想知道如何检查。当我查看 S3 管理控制台时,一个文件的属性显示:
ETag:ba66d1235f954f28366ddc0a7efcb295-1609
但是当我在本地执行“md5sum”时,我得到了完全不同的东西:
fa693af7341c6c83e525ebc6b95422ea
这是否意味着上传的文件已损坏?
如果不是,如何检查上传文件的完整性?
【问题讨论】:
标签: php amazon-web-services amazon-s3