@Override public List<MultipartPart> listMultipartUpload(MultipartUpload mpu) { ImmutableList.Builder<MultipartPart> builder = ImmutableList.builder(); for (MultipartPart part : super.listMultipartUpload(mpu)) { builder.add(MultipartPart.create(part.partNumber(), 0, part.partETag(), part.lastModified())); } return builder.build(); }
@Override public String completeMultipartUpload(final MultipartUpload mpu, final List<MultipartPart> parts) { long length = 0; for (MultipartPart part : parts) { length += part.partSize(); } byte[] array = Longs.toByteArray(length); ByteSourcePayload payload = new ByteSourcePayload( ByteSource.wrap(array)); super.abortMultipartUpload(mpu); MultipartPart part = delegate().uploadMultipartPart(mpu, 1, payload); return delegate().completeMultipartUpload(mpu, ImmutableList.of(part)); }
@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()); }
@Deprecated public static MultipartPart create(int partNumber, long partSize, @Nullable String partETag) { return MultipartPart.create(partNumber, partSize, partETag, null); }
@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 void abortMultipartUpload(MultipartUpload mpu) { ImmutableList.Builder<String> builder = ImmutableList.builder(); List<MultipartPart> parts = listMultipartUpload(mpu); for (MultipartPart part : parts) { builder.add(getMPUPartName(mpu, part.partNumber())); } removeBlobs(mpu.containerName(), builder.build()); }
@Override public String completeMultipartUpload(final MultipartUpload mpu, final List<MultipartPart> parts) { long length = 0; for (MultipartPart part : parts) { length += part.partSize(); super.removeBlob(mpu.containerName(), mpu.id() + "-" + part.partNumber()); } byte[] array = Longs.toByteArray(length); ByteSourcePayload payload = new ByteSourcePayload( ByteSource.wrap(array)); payload.getContentMetadata().setContentLength((long) array.length); super.abortMultipartUpload(mpu); MultipartUpload mpu2 = super.initiateMultipartUpload( mpu.containerName(), mpu.blobMetadata(), mpu.putOptions()); MultipartPart part = super.uploadMultipartPart(mpu2, 1, payload); return super.completeMultipartUpload(mpu2, ImmutableList.of(part)); }
@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" }
@Deprecated public static MultipartPart create(int partNumber, long partSize, @Nullable String partETag) { return MultipartPart.create(partNumber, partSize, partETag, null); }
@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 void abortMultipartUpload(MultipartUpload mpu) { ImmutableList.Builder<String> names = ImmutableList.builder(); for (MultipartPart part : listMultipartUpload(mpu)) { names.add(getMPUPartName(mpu, part.partNumber())); } removeBlobs(mpu.containerName(), names.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) { 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 MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) { long length; try (InputStream is = payload.openStream()) { length = ByteStreams.copy(is, ByteStreams.nullOutputStream()); } catch (IOException ioe) { throw new RuntimeException(ioe); } byte[] array = Longs.toByteArray(length); ByteSourcePayload newPayload = new ByteSourcePayload( ByteSource.wrap(array)); newPayload.setContentMetadata(payload.getContentMetadata()); newPayload.getContentMetadata().setContentLength((long) array.length); newPayload.getContentMetadata().setContentMD5((HashCode) null); MultipartPart part = super.uploadMultipartPart(mpu, partNumber, newPayload); return MultipartPart.create(part.partNumber(), length, part.partETag(), part.lastModified()); }
@Deprecated public static MultipartPart create(int partNumber, long partSize, @Nullable String partETag) { return MultipartPart.create(partNumber, partSize, partETag, null); }
@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 void abortMultipartUpload(MultipartUpload mpu) { ImmutableList.Builder<String> names = ImmutableList.builder(); for (MultipartPart part : listMultipartUpload(mpu)) { names.add(getMPUPartName(mpu, part.partNumber())); } removeBlobs(mpu.containerName(), names.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) { 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(final MultipartUpload mpu, final List<MultipartPart> parts) { long length = 0; for (MultipartPart part : parts) { length += part.partSize(); } byte[] array = Longs.toByteArray(length); ByteSourcePayload payload = new ByteSourcePayload( ByteSource.wrap(array)); super.abortMultipartUpload(mpu); MultipartPart part = delegate().uploadMultipartPart(mpu, 1, payload); return delegate().completeMultipartUpload(mpu, ImmutableList.of(part)); }