@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(); }
throw new S3Exception(S3ErrorCode.INVALID_PART); parts.add(MultipartPart.create(entry.getKey(), partSize, part.partETag(), part.lastModified()));
@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 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 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 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 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) { 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 = getMPUPartName(mpu, partNumber); String eTag = api.getObjectApi(regionId, mpu.containerName()).put(partName, payload); long partSize = payload.getContentMetadata().getContentLength(); Date lastModified = null; // Swift does not return Last-Modified return MultipartPart.create(partNumber, partSize, eTag, lastModified); }
@Override public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) { String partName = getMPUPartName(mpu, partNumber); String eTag = api.getObjectApi(regionId, mpu.containerName()).put(partName, payload); long partSize = payload.getContentMetadata().getContentLength(); Date lastModified = null; // Swift does not return Last-Modified return MultipartPart.create(partNumber, partSize, eTag, lastModified); }
@Override public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) { String partName = getMPUPartName(mpu, partNumber); long partSize = payload.getContentMetadata().getContentLength(); GoogleCloudStorageObject object = api.getObjectApi().simpleUpload( mpu.containerName(), "application/unknown", partSize, payload, new InsertObjectOptions().name(partName)); return MultipartPart.create(partNumber, partSize, object.etag(), object.updated()); }
@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()); }
@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 = getMPUPartName(mpu, partNumber); long partSize = payload.getContentMetadata().getContentLength(); InsertObjectOptions insertOptions = new InsertObjectOptions().name(partName); GoogleCloudStorageObject object = api.getObjectApi().simpleUpload(mpu.containerName(), mpu.blobMetadata().getContentMetadata().getContentType(), partSize, payload, insertOptions); return MultipartPart.create(partNumber, partSize, object.etag(), object.updated()); }