writeSimpleElement(xml, "UploadId", upload.id()); writeInitiatorStanza(xml); writeOwnerStanza(xml);
@Override public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) { ImmutableList.Builder<String> sha1 = ImmutableList.builder(); for (MultipartPart part : parts) { sha1.add(part.partETag()); } B2Object b2Object = api.getMultipartApi().finishLargeFile(mpu.id(), sha1.build()); return b2Object.contentSha1(); // this is always "none" }
@Override public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) { ImmutableList.Builder<String> sha1 = ImmutableList.builder(); for (MultipartPart part : parts) { sha1.add(part.partETag()); } B2Object b2Object = api.getMultipartApi().finishLargeFile(mpu.id(), sha1.build()); return b2Object.contentSha1(); // this is always "none" }
@Override public List<MultipartPart> listMultipartUpload(MultipartUpload mpu) { ImmutableList.Builder<MultipartPart> parts = ImmutableList.builder(); Map<Integer, ListMultipartUploadResponse> s3Parts = sync.listMultipartPartsFull(mpu.containerName(), mpu.blobName(), mpu.id()); for (Map.Entry<Integer, ListMultipartUploadResponse> entry : s3Parts.entrySet()) { ListMultipartUploadResponse response = entry.getValue(); parts.add(MultipartPart.create(entry.getKey(), response.size(), response.eTag(), response.lastModified())); } return parts.build(); }
@Override public List<MultipartPart> listMultipartUpload(MultipartUpload mpu) { ImmutableList.Builder<MultipartPart> parts = ImmutableList.builder(); Map<Integer, ListMultipartUploadResponse> s3Parts = sync.listMultipartPartsFull(mpu.containerName(), mpu.blobName(), mpu.id()); for (Map.Entry<Integer, ListMultipartUploadResponse> entry : s3Parts.entrySet()) { ListMultipartUploadResponse response = entry.getValue(); parts.add(MultipartPart.create(entry.getKey(), response.size(), response.eTag(), response.lastModified())); } return parts.build(); }
@Override public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) { ImmutableMap.Builder<Integer, String> builder = ImmutableMap.builder(); for (MultipartPart part : parts) { builder.put(part.partNumber(), part.partETag()); } return sync.completeMultipartUpload(mpu.containerName(), mpu.blobName(), mpu.id(), builder.build()); }
@Override public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) { ImmutableMap.Builder<Integer, String> builder = ImmutableMap.builder(); for (MultipartPart part : parts) { builder.put(part.partNumber(), part.partETag()); } return sync.completeMultipartUpload(mpu.containerName(), mpu.blobName(), mpu.id(), builder.build()); }
@Override public List<MultipartPart> listMultipartUpload(MultipartUpload mpu) { ListPartsResponse response = api.getMultipartApi().listParts(mpu.id(), null, null); ImmutableList.Builder<MultipartPart> parts = ImmutableList.builder(); for (ListPartsResponse.Entry entry : response.parts()) { parts.add(MultipartPart.create(entry.partNumber(), entry.contentLength(), entry.contentSha1(), entry.uploadTimestamp())); } return parts.build(); }
@Override public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) { GetUploadPartResponse getUploadPart = api.getMultipartApi().getUploadPartUrl(mpu.id()); UploadPartResponse uploadPart = api.getMultipartApi().uploadPart(getUploadPart, partNumber, null, payload); Date lastModified = null; // B2 does not return Last-Modified String contentSha1 = uploadPart.contentSha1(); if (contentSha1.startsWith("unverified:")) { contentSha1 = contentSha1.substring("unverified:".length()); } return MultipartPart.create(uploadPart.partNumber(), uploadPart.contentLength(), contentSha1, lastModified); }
@Override public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) { GetUploadPartResponse getUploadPart = api.getMultipartApi().getUploadPartUrl(mpu.id()); UploadPartResponse uploadPart = api.getMultipartApi().uploadPart(getUploadPart, partNumber, null, payload); Date lastModified = null; // B2 does not return Last-Modified String contentSha1 = uploadPart.contentSha1(); if (contentSha1.startsWith("unverified:")) { contentSha1 = contentSha1.substring("unverified:".length()); } return MultipartPart.create(uploadPart.partNumber(), uploadPart.contentLength(), contentSha1, lastModified); }
@Override public List<MultipartPart> listMultipartUpload(MultipartUpload mpu) { ListPartsResponse response = api.getMultipartApi().listParts(mpu.id(), null, null); ImmutableList.Builder<MultipartPart> parts = ImmutableList.builder(); for (ListPartsResponse.Entry entry : response.parts()) { parts.add(MultipartPart.create(entry.partNumber(), entry.contentLength(), entry.contentSha1(), entry.uploadTimestamp())); } return parts.build(); }
@Override public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) { GetUploadPartResponse getUploadPart = api.getMultipartApi().getUploadPartUrl(mpu.id()); UploadPartResponse uploadPart = api.getMultipartApi().uploadPart(getUploadPart, partNumber, null, payload); Date lastModified = null; // B2 does not return Last-Modified String contentSha1 = uploadPart.contentSha1(); if (contentSha1.startsWith("unverified:")) { contentSha1 = contentSha1.substring("unverified:".length()); } return MultipartPart.create(uploadPart.partNumber(), uploadPart.contentLength(), contentSha1, lastModified); }
@Override public List<MultipartPart> listMultipartUpload(MultipartUpload mpu) { ListPartsResponse response = api.getMultipartApi().listParts(mpu.id(), null, null); ImmutableList.Builder<MultipartPart> parts = ImmutableList.builder(); for (ListPartsResponse.Entry entry : response.parts()) { parts.add(MultipartPart.create(entry.partNumber(), entry.contentLength(), entry.contentSha1(), entry.uploadTimestamp())); } return parts.build(); }
@Override public void abortMultipartUpload(MultipartUpload mpu) { List<MultipartPart> parts = listMultipartUpload(mpu); for (MultipartPart part : parts) { removeBlob(mpu.containerName(), MULTIPART_PREFIX + mpu.id() + "-" + mpu.blobName() + "-" + part.partNumber()); } removeBlob(mpu.containerName(), MULTIPART_PREFIX + mpu.id() + "-" + mpu.blobName() + "-stub"); }
@Override public void abortMultipartUpload(MultipartUpload mpu) { List<MultipartPart> parts = listMultipartUpload(mpu); for (MultipartPart part : parts) { removeBlob(mpu.containerName(), MULTIPART_PREFIX + mpu.id() + "-" + mpu.blobName() + "-" + part.partNumber()); } removeBlob(mpu.containerName(), MULTIPART_PREFIX + mpu.id() + "-" + mpu.blobName() + "-stub"); }
@Override public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) { long partSize = payload.getContentMetadata().getContentLength(); String eTag = sync.uploadPart(mpu.containerName(), mpu.blobName(), partNumber, mpu.id(), payload); Date lastModified = null; // S3 does not return Last-Modified return MultipartPart.create(partNumber, partSize, eTag, lastModified); }
@Override public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) { String partName = MULTIPART_PREFIX + mpu.id() + "-" + mpu.blobName() + "-" + partNumber; Blob blob = blobBuilder(partName) .payload(payload) .build(); String partETag = putBlob(mpu.containerName(), blob); long partSize = -1; // TODO: how to get this from payload? return MultipartPart.create(partNumber, partSize, partETag); }
@Override public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) { String partName = MULTIPART_PREFIX + mpu.id() + "-" + mpu.blobName() + "-" + partNumber; Blob blob = blobBuilder(partName) .payload(payload) .build(); String partETag = putBlob(mpu.containerName(), blob); BlobMetadata metadata = blobMetadata(mpu.containerName(), partName); // TODO: racy, how to get this from payload? long partSize = metadata.getContentMetadata().getContentLength(); return MultipartPart.create(partNumber, partSize, partETag, metadata.getLastModified()); }
@Override public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) { String partName = MULTIPART_PREFIX + mpu.id() + "-" + mpu.blobName() + "-" + partNumber; Blob blob = blobBuilder(partName) .payload(payload) .build(); String partETag = putBlob(mpu.containerName(), blob); BlobMetadata metadata = blobMetadata(mpu.containerName(), partName); // TODO: racy, how to get this from payload? long partSize = metadata.getContentMetadata().getContentLength(); return MultipartPart.create(partNumber, partSize, partETag, metadata.getLastModified()); }