php - AWS PHP SDK 是否会自动重试分段上传?
问题描述
基于 sdk 代码,s3 客户端代码使用重试逻辑,但文档中的示例代码建议执行循环,直到分段上传正确完成。
$s3Client = new S3Client([
'profile' => 'default',
'region' => 'us-east-2',
'version' => '2006-03-01'
]);
$bucket = 'your-bucket';
$key = 'my-file.zip';
// Using stream instead of file path
$source = fopen('/path/to/large/file.zip', 'rb');
$uploader = new ObjectUploader(
$s3Client,
$bucket,
$key,
$source
);
do {
try {
$result = $uploader->upload();
if ($result["@metadata"]["statusCode"] == '200') {
print('<p>File successfully uploaded to ' . $result["ObjectURL"] . '.</p>');
}
print($result);
} catch (MultipartUploadException $e) {
rewind($source);
$uploader = new MultipartUploader($s3Client, $source, [
'state' => $e->getState(),
]);
}
} while (!isset($result));
在标准的 3 次重试发生后是否会抛出 MultipartUploadException?还是重试策略未涵盖分段上传?
解决方案
推荐阅读
- python - 在特定维度的特定索引处的一个热编码列
- reactjs - 不使用 useEffect Hook 来获取 API 是错误的吗?
- python - 如何在乘法和 mod 中不乘以空间?
- java - OpenAPI3:如何在查询中传递 json 对象数组
- javascript - 在 JavaScript 中,如何按 asc / desc 对数组进行排序
- r - 将数据框中的特定列转换为 R 中的字典/列表
- python - subprocess.run 无法打印文件中多行的输出
- kotlin - 如何使用 RETURNS_DEEP_STUBS 模拟接口 HttpResponse
- javascript - 如何将可调整大小的 div 锁定到页面底部?
- c++ - 'ui_mainwindow.h' 文件未找到