xml.writeStartElement("Upload"); writeSimpleElement(xml, "Key", upload.blobName()); writeSimpleElement(xml, "UploadId", upload.id()); writeInitiatorStanza(xml);
@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 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 void abortMultipartUpload(MultipartUpload mpu) { sync.abortMultipartUpload(mpu.containerName(), mpu.blobName(), mpu.id()); }
@Override public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) { String blockId = BaseEncoding.base64().encode(Ints.toByteArray(partNumber)); sync.putBlock(mpu.containerName(), mpu.blobName(), blockId, payload); String eTag = ""; // putBlock does not return ETag Date lastModified = null; // putBlob does not return Last-Modified return MultipartPart.create(partNumber, payload.getContentMetadata().getContentLength(), eTag); }
@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 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) { 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) { 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 String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) { ImmutableList.Builder<Segment> builder = ImmutableList.builder(); for (MultipartPart part : parts) { String path = mpu.containerName() + "/" + getMPUPartName(mpu, part.partNumber()); builder.add(Segment.builder().path(path).etag(part.partETag()).sizeBytes(part.partSize()).build()); } return api.getStaticLargeObjectApi(regionId, mpu.containerName()).replaceManifest(mpu.blobName(), builder.build(), mpu.blobMetadata().getUserMetadata(), getContentMetadataForManifest(mpu.blobMetadata().getContentMetadata())); }
@Override public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) { ImmutableList.Builder<Segment> builder = ImmutableList.builder(); for (MultipartPart part : parts) { String path = mpu.containerName() + "/" + getMPUPartName(mpu, part.partNumber()); builder.add(Segment.builder().path(path).etag(part.partETag()).sizeBytes(part.partSize()).build()); } return api.getStaticLargeObjectApi(regionId, mpu.containerName()).replaceManifest(mpu.blobName(), builder.build(), mpu.blobMetadata().getUserMetadata(), getContentMetadataForManifest(mpu.blobMetadata().getContentMetadata())); }
@Override public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) { ImmutableList.Builder<Segment> builder = ImmutableList.builder(); for (MultipartPart part : parts) { String path = mpu.containerName() + "/" + getMPUPartName(mpu, part.partNumber()); builder.add(Segment.builder().path(path).etag(part.partETag()).sizeBytes(part.partSize()).build()); } return api.getStaticLargeObjectApi(regionId, mpu.containerName()).replaceManifest(mpu.blobName(), builder.build(), mpu.blobMetadata().getUserMetadata(), getContentMetadataForManifest(mpu.blobMetadata().getContentMetadata())); }
@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()); }