栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将大文件上传到Amazon S3时出现问题

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将大文件上传到Amazon S3时出现问题

尝试使用底层API。

当出现问题时,这将使您有更多的控制权,因为它们可能与11GB文件有关。

往返S3的请求有时会失败。使用低级API,如果上传失败,您将可以重试其中的一部分。

重构一下Amazon文档中的示例:

// Step 2: Upload parts.long filePosition = 0;for (int i = 1; filePosition < contentLength; i++) {    // Last part can be less than 5 MB. Adjust part size.    partSize = Math.min(partSize, (contentLength - filePosition));    // Create request to upload a part.    UploadPartRequest uploadRequest = new UploadPartRequest()     .withBucketName(existingBucketName).withKey(keyName)     .withUploadId(initResponse.getUploadId()).withPartNumber(i)     .withFileOffset(filePosition)     .withFile(file)     .withPartSize(partSize);    // repeat the upload until it succeeds.    boolean anotherPass;          do {   anotherPass = false;  // assume everythings ok   try {       // Upload part and add response to our list.       partETags.add(s3Client.uploadPart(uploadRequest).getPartETag());   } catch (Exception e) {         anotherPass = true; // repeat   }        } while (anotherPass);     filePosition += partSize;}   // Step 3: complete.   CompleteMultipartUploadRequest compRequest = newCompleteMultipartUploadRequest(          existingBucketName,keyName,initResponse.getUploadId(),partETags);   s3Client.completeMultipartUpload(compRequest);

注意:我不是Java开发人员,所以我可能会在语法上搞砸,但是希望这可以使您朝正确的方向前进。另外,如果上传反复失败,您将需要添加“重试计数器”以防止无限循环。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/495113.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号