废话不多说,把代码贴出来。
package com.changba.erp.utils;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.multipart.MultipartFile;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.CompleteMultipartUploadRequest;
import com.aliyun.oss.model.InitiateMultipartUploadRequest;
import com.aliyun.oss.model.InitiateMultipartUploadResult;
import com.aliyun.oss.model.ListPartsRequest;
import com.aliyun.oss.model.PartETag;
import com.aliyun.oss.model.PartListing;
import com.aliyun.oss.model.PartSummary;
import com.aliyun.oss.model.UploadPartRequest;
import com.aliyun.oss.model.UploadPartResult;
public class AliyunOSSUpload implements Runnable {
private MultipartFile localFile;
private long startPos;
private long partSize;
private int partNumber;
private String uploadId;
private static String key;
private static String bucketName;
// 新建一个List保存每个分块上传后的ETag和PartNumber
protected static List<PartETag> partETags = Collections.synchronizedList(new ArrayList<PartETag>());
private static Logger logger = LoggerFactory.getLogger(FileUploader.class);
protected static OSSClient client = null;
/**
* 创建构造方法
*
* @param localFile
* 要上传的文件
* @param startPos
* 每个文件块的开始
* @param partSize
* @param partNumber
* @param uploadId
* 作为块的标识
* @param key
* 上传到OSS后的文件名
*/
public AliyunOSSUpload(Multipart