Amazon Workdocs API不支持以块/分块形式上传大文件。建议使用Amazon S3来处理大文件上传。以下是Java代码示例:
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.client.builder.AwsClientBuilder;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.InitiateMultipartUploadRequest;
import com.amazonaws.services.s3.model.InitiateMultipartUploadResult;
import com.amazonaws.services.s3.model.PartETag;
import com.amazonaws.services.s3.model.UploadPartRequest;
import com.amazonaws.services.s3.model.UploadPartResult;
import com.amazonaws.util.StringUtils;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class UploadLargeFile {
public static void main(String[] args) {
Regions clientRegion = Regions.DEFAULT_REGION;
String bucketName = "*** Bucket name ***";
String keyName = "*** Object key ***";
String filePath = "*** Path to file to upload ***";
try {
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withCredentials(new ProfileCredentialsProvider())
.withRegion(clientRegion)
.build();
// Step 1: Initialize.
InitiateMultipartUploadRequest initRequest = new InitiateMultipartUploadRequest(bucketName, keyName);
InitiateMultipartUploadResult initResponse = s3Client.initiateMultipartUpload(initRequest);
String uploadId = initResponse.getUploadId();
final long PART_SIZE = 5 * 1024 * 1024; // Set part size to 5 MB.
try {
long filePosition = 0;
for (int i = 1; filePosition < fullFile.length(); i++) {
// Last part can be less than 5 MB. Adjust part size.
partSize = Math.min(PART_SIZE, (fullFile.length() - filePosition));
// Create request to upload a part.
UploadPartRequest uploadRequest = new Upload