最近更新时间:2024-12-27 16:23:26
Ks3Client client = new Ks3Client("AccessKeyId", "SecretAccessKey", getApplicationContext());
client.setEndpoint("ks3-cn-beijing.ksyuncs.com");
InitiateMultipartUploadRequest request = new InitiateMultipartUploadRequest("bucketName", "objectKey");
client.initiateMultipartUpload(request, new InitiateMultipartUploadResponseHandler() {
@Override
public void onSuccess(InitiateMultipartUploadRequest request, InitiateMultipartUploadResult result) {
Log.i("Init Multipart Upload", "Status Code: " + result.getStatusCode());
Log.i("Init Multipart Upload", "UploadId: " + result.getUploadId());
}
@Override
public void onFailure(InitiateMultipartUploadRequest request, Ks3ClientException clientException, Ks3ServiceException serviceException) {
if (clientException != null) {
Log.e("Init Multipart Upload", "ClientException: " + clientException.getMessage());
}
if (serviceException != null) {
Log.e("Init Multipart Upload", "ServiceException: " + serviceException.getMessage());
}
}
});
Ks3Client client = new Ks3Client("AccessKeyId", "SecretAccessKey", getApplicationContext());
client.setEndpoint("ks3-cn-beijing.ksyuncs.com");
File file = new File("/root/test/file.txt");
UploadPartRequest request = new UploadPartRequest("bucketName", "objectKey", "uploadId", file, 0, 1, 1024 * 1024 * 5);
client.uploadPart(request, new UploadPartResponseHandler() {
@Override
public void onSuccess(UploadPartRequest request, UploadPartResult result) {
Log.i("Upload Part", "Status Code: " + result.getStatusCode());
Log.i("Upload Part", "PartNumber = " + result.getPartETag().getPartNumber() + ", ETag = " + result.getPartETag().geteTag());
}
@Override
public void onTaskProgress(double progress) {
Log.d("Upload Part", "Progress: " + progress);
}
@Override
public void onFailure(UploadPartRequest request, Ks3ClientException clientException, Ks3ServiceException serviceException) {
if (clientException != null) {
Log.e("Upload Part", "ClientException: " + clientException.getMessage());
}
if (serviceException != null) {
Log.e("Upload Part", "ServiceException: " + serviceException.getMessage());
}
}
});
Ks3Client client = new Ks3Client("AccessKeyId", "SecretAccessKey", getApplicationContext());
client.setEndpoint("ks3-cn-beijing.ksyuncs.com");
ListPartsRequest request = new ListPartsRequest("bucketName", "objectKey", "uploadId");
client.listParts(request, new ListPartsResponseHandler() {
@Override
public void onSuccess(ListPartsRequest request, ListPartsResult result) {
StringBuilder stringBuilder = new StringBuilder();
List<Part> parts = result.getParts();
for (Part part : parts) {
stringBuilder.append(part.getPartNumber()).append(" ").append(part.getETag()).append("\n");
}
Log.i("List Parts", "Status Code: " + result.getStatusCode());
Log.i("List Parts", "Parts: " + stringBuilder.toString());
}
@Override
public void onFailure(ListPartsRequest request, Ks3ClientException clientException, Ks3ServiceException serviceException) {
if (clientException != null) {
Log.e("List Parts", "ClientException: " + clientException.getMessage());
}
if (serviceException != null) {
Log.e("List Parts", "ServiceException: " + serviceException.getMessage());
}
}
});
Ks3Client client = new Ks3Client("AccessKeyId", "SecretAccessKey", getApplicationContext());
client.setEndpoint("ks3-cn-beijing.ksyuncs.com");
// 待合并的分块
List<PartETag> partETags = new ArrayList<PartETag>();
partETags.add(new PartETag(1, "ETag1"));
partETags.add(new PartETag(2, "ETag2"));
CompleteMultipartUploadRequest request = new CompleteMultipartUploadRequest("bucketName", "objectKey", "uploadId", partETags);
client.completeMultipartUpload(request, new CompleteMultipartUploadResponseHandler() {
@Override
public void onSuccess(CompleteMultipartUploadRequest request, CompleteMultipartUploadResult result) {
Log.i("Comp Multipart Upload", "Status Code: " + result.getStatusCode());
}
@Override
public void onFailure(CompleteMultipartUploadRequest request, Ks3ClientException clientException, Ks3ServiceException serviceException) {
if (clientException != null) {
Log.e("Comp Multipart Upload", "ClientException: " + clientException.getMessage());
}
if (serviceException != null) {
Log.e("Comp Multipart Upload ", "ServiceException: " + serviceException.getMessage());
}
}
});
Ks3Client client = new Ks3Client("AccessKeyId", "SecretAccessKey", getApplicationContext());
client.setEndpoint("ks3-cn-beijing.ksyuncs.com");
AbortMultipartUploadRequest request = new AbortMultipartUploadRequest("bucketName", "objectKey", "uploadId");
client.abortMultipartUpload(request, new AbortMultipartUploadResponseHandler() {
@Override
public void onSuccess(AbortMultipartUploadRequest request, AbortMultipartUploadResult result) {
Log.i("Abort Multipart Upload", "Status Code: " + result.getStatusCode());
}
@Override
public void onFailure(AbortMultipartUploadRequest request, Ks3ClientException clientException, Ks3ServiceException serviceException) {
if (clientException != null) {
Log.e("Abort Multipart Upload", "ClientException: " + clientException.getMessage());
}
if (serviceException != null) {
Log.e("Abort Multipart Upload", "ServiceException: " + serviceException.getMessage());
}
}
});
Ks3Client client = new Ks3Client("AccessKeyId", "SecretAccessKey", getApplicationContext());
client.setEndpoint("ks3-cn-beijing.ksyuncs.com");
File file = new File("/root/test/file.txt");
long partSize = 1024 * 1024 * 2;
MultipartUploadExample uploader = new MultipartUploadExample(client, "bucketName", "objectKey", file, partSize);
uploader.upload();
public class MultipartUploadExample {
final private String TAG = "MultiUploadExample";
private String bucketName;
private String key;
private File file;
private long partSize = 5 * 1024 * 1024;
private String uploadId;
private Ks3Client client;
final static private int STATE_UPLOAD_INIT = 0;
final static private int STATE_UPLOAD_NEXT = 1;
final static private int STATE_UPLOAD_COMPLETE = 2;
final static private int STATE_UPLOAD_FAILED = 3;
final private List<PartETag> uploadedParts = new ArrayList<>();
UploadPartRequestFactory localUploadPartRequestFactory = null;
private void create(Ks3Client client, String bucketName, String key, File file, long partSize) {
this.client = client;
this.bucketName = bucketName;
this.key = key;
this.file = file;
this.partSize = partSize;
}
public MultipartUploadExample(Ks3Client client, String bucketName, String key, File file) {
create(client, bucketName, key, file, partSize);
}
public MultipartUploadExample(Ks3Client client, String bucketName, String key, File file, long partSize) {
create(client, bucketName, key, file, partSize);
}
private final UploadHandler handler = new UploadHandler();
class UploadHandler extends Handler {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case STATE_UPLOAD_INIT:
initUpload();
break;
case STATE_UPLOAD_NEXT:
uploadPart();
break;
case STATE_UPLOAD_COMPLETE:
completeUpload();
break;
case STATE_UPLOAD_FAILED:
Log.e(TAG, "upload failed");
default:
break;
}
}
}
public void upload() {
handler.sendEmptyMessage(STATE_UPLOAD_INIT);
}
private void initUpload() {
InitiateMultipartUploadRequest request = new InitiateMultipartUploadRequest(bucketName, key);
client.initiateMultipartUpload(request, new InitiateMultipartUploadResponseHandler() {
@Override
public void onSuccess(InitiateMultipartUploadRequest request, InitiateMultipartUploadResult result) {
uploadId = result.getUploadId();
localUploadPartRequestFactory = new UploadPartRequestFactory(bucketName, key, uploadId, file, partSize);
Log.i(TAG, "init multipart upload success, uploadId=" + uploadId);
handler.sendEmptyMessage(STATE_UPLOAD_NEXT);
}
@Override
public void onFailure(InitiateMultipartUploadRequest request, Ks3ClientException clientException, Ks3ServiceException serviceException) {
if (clientException != null) {
Log.e(TAG, "init multipart upload fail, clientException=" + clientException.getMessage());
}
if (serviceException != null) {
Log.e(TAG, "init multipart upload fail, serviceException=" + serviceException.getMessage());
}
handler.sendEmptyMessage(STATE_UPLOAD_FAILED);
}
});
}
private void uploadPart() {
if (localUploadPartRequestFactory.hasMoreRequests()) {
UploadPartRequest request = localUploadPartRequestFactory.getNextUploadPartRequest();
client.uploadPart(request, new UploadPartResponseHandler() {
@Override
public void onSuccess(UploadPartRequest request, UploadPartResult result) {
PartETag partETag = result.getPartETag();
partETag.setPartNumber(request.getPartNumber());
uploadedParts.add(partETag);
Log.i(TAG, "upload part success, partNumber=" + partETag.getPartNumber() + ", eTag=" + partETag.geteTag());
handler.sendEmptyMessage(STATE_UPLOAD_NEXT);
}
@Override
public void onTaskProgress(double progress) {
}
@Override
public void onFailure(UploadPartRequest request, Ks3ClientException clientException, Ks3ServiceException serviceException) {
if (clientException != null) {
Log.e(TAG, "upload part fail, clientException=" + clientException.getMessage());
}
if (serviceException != null) {
Log.e(TAG, "upload part fail, serviceException=" + serviceException.getMessage());
}
handler.sendEmptyMessage(STATE_UPLOAD_FAILED);
}
});
} else {
// 发送完成消息
handler.sendEmptyMessage(STATE_UPLOAD_COMPLETE);
}
}
private void completeUpload() {
CompleteMultipartUploadRequest request = new CompleteMultipartUploadRequest(bucketName, key, uploadId, uploadedParts);
client.completeMultipartUpload(request, new CompleteMultipartUploadResponseHandler() {
@Override
public void onSuccess(CompleteMultipartUploadRequest request, CompleteMultipartUploadResult result) {
Log.i(TAG, "complete multipart upload success, status code=" + result.getStatusCode());
}
@Override
public void onFailure(CompleteMultipartUploadRequest request, Ks3ClientException clientException, Ks3ServiceException serviceException) {
if (clientException != null) {
Log.e(TAG, "complete multipart upload fail, clientException=" + clientException.getMessage());
}
if (serviceException != null) {
Log.e(TAG, "complete multipart upload fail, serviceException=" + serviceException.getMessage());
}
handler.sendEmptyMessage(STATE_UPLOAD_FAILED);
}
});
}
}
Ks3Client client = new Ks3Client("AccessKeyId", "SecretAccessKey", getApplicationContext());
client.setEndpoint("ks3-cn-beijing.ksyuncs.com");
File file = new File("/root/test/file.txt");
long partSize = 1024 * 1024 * 5;
MultiUploader uploader = new MultiUploader(client, "bucketName", "objectKey", file, partSize);
uploader.setHandler(new CompleteMultipartUploadResponseHandler() {
@Override
public void onSuccess(CompleteMultipartUploadRequest request, CompleteMultipartUploadResult result) {
Log.i("Multipart Upload", "Status Code: " + result.getStatusCode());
}
@Override
public void onFailure(CompleteMultipartUploadRequest request, Ks3ClientException clientException, Ks3ServiceException serviceException) {
if (clientException != null) {
Log.e("Multipart Upload", "ClientException: " + clientException.getMessage());
}
if (serviceException != null) {
Log.e("Multipart Upload", "ServiceException: " + serviceException.getMessage());
}
}
});
uploader.upload();
纯净模式