public MultipartPart getMultipartPart() { return new MultipartPart(partNumber, lastModified, etag, size); }
@Override public String toString() { return this.getClass().getName() + " [" + "partNumber=" + getPartNumber() + ", lastModified=" + getLastModified() + ", etag=" + getEtag() + ", size=" + getSize() + "]"; }
@Override public boolean equals(Object other) { if (other == this) { return true; } if (other instanceof MultipartPart) { MultipartPart p = (MultipartPart) other; return Arrays.equals( new Object[]{ partNumber, lastModified, size}, new Object[]{ p.partNumber, p.lastModified, p.size} ) && sameEtag(p.etag); } return false; }
@Override public MultipartPart call() throws BackgroundException { try { final HttpRange range = HttpRange.byLength(offset, length); final MultipartPart part = session.getClient().multipartUploadPartCopy(multipart, partNumber, containerService.getContainer(source).getName(), containerService.getKey(source), null, null, null, null, range.getStart(), range.getEnd(), source.attributes().getVersionId()); if(log.isInfoEnabled()) { log.info(String.format("Received response %s for part number %d", part, partNumber)); } // Populate part with response data that is accessible via the object's metadata return new MultipartPart(partNumber, null == part.getLastModified() ? new Date(System.currentTimeMillis()) : part.getLastModified(), null == part.getEtag() ? StringUtils.EMPTY : part.getEtag(), part.getSize()); } catch(S3ServiceException e) { throw new S3ExceptionMappingService().map("Cannot copy {0}", e, source); } } });
return new MultipartPart(partNumber, part.getLastModified(), part.getEtag(), -1l); } catch (ServiceException se) { throw new S3ServiceException(se);
if(c.getPartNumber().equals(partNumber)) { if(log.isInfoEnabled()) { log.info(String.format("Skip completed part number %d", partNumber)); offset += c.getSize(); break; final StringBuilder concat = new StringBuilder(); for(MultipartPart part : completed) { concat.append(part.getEtag());
for (MultipartPart part: sortedParts) { builder.e("Part") .e("PartNumber").t(String.valueOf(part.getPartNumber())).up() .e("ETag").t(part.getEtag());
public int compare(MultipartPart o1, MultipartPart o2){ if (o1 == o2){ return 0; } if (o1 == null) { return -1; } if (o2 == null) { return 1; } return o1.getPartNumber().compareTo(o2.getPartNumber()); } } //PartNumberComparator
final StringBuilder concat = new StringBuilder(); for(MultipartPart part : completed) { concat.append(part.getEtag());
/** * @return No Content-Range support */ @Override public Append append(final Path file, final Long length, final Cache<Path> cache) throws BackgroundException { if(length >= preferences.getLong("s3.upload.multipart.threshold")) { if(preferences.getBoolean("s3.upload.multipart")) { try { final List<MultipartUpload> upload = multipartService.find(file); if(!upload.isEmpty()) { Long size = 0L; for(MultipartPart completed : multipartService.list(upload.iterator().next())) { size += completed.getSize(); } return new Append(size); } } catch(AccessDeniedException | InteroperabilityException e) { log.warn(String.format("Ignore failure listing incomplete multipart uploads. %s", e.getDetail())); } } } if(finder.withCache(cache).find(file)) { final PathAttributes attr = attributes.withCache(cache).find(file); return new Append(false, true).withSize(attr.getSize()).withChecksum(attr.getChecksum()); } return Write.notfound; }
return new MultipartPart(partNumber, part.getLastModified(), part.getEtag(), -1l); } catch (ServiceException se) { throw new S3ServiceException(se);
for (MultipartPart part: sortedParts) { builder.e("Part") .e("PartNumber").t(String.valueOf(part.getPartNumber())).up() .e("ETag").t(part.getEtag());
public int compare(MultipartPart o1, MultipartPart o2){ if (o1 == o2){ return 0; } if (o1 == null) { return -1; } if (o2 == null) { return 1; } return o1.getPartNumber().compareTo(o2.getPartNumber()); } } //PartNumberComparator
@Override public String toString() { return this.getClass().getName() + " [" + "partNumber=" + getPartNumber() + ", lastModified=" + getLastModified() + ", etag=" + getEtag() + ", size=" + getSize() + "]"; }
public MultipartPart getMultipartPart() { return new MultipartPart(partNumber, lastModified, etag, size); }
@Override public boolean equals(Object other) { if (other == this) { return true; } if (other instanceof MultipartPart) { MultipartPart p = (MultipartPart) other; return Arrays.equals( new Object[]{ partNumber, lastModified, size}, new Object[]{ p.partNumber, p.lastModified, p.size} ) && sameEtag(p.etag); } return false; }
return new MultipartPart(partNumber, object.getLastModifiedDate(), object.getETag(), object.getContentLength()); } catch (ServiceException se) {
return new MultipartPart(partNumber, object.getLastModifiedDate(), object.getETag(), object.getContentLength()); } catch (ServiceException se) {
return new MultipartPart(partNumber, null == part.getLastModifiedDate() ? new Date(System.currentTimeMillis()) : part.getLastModifiedDate(), null == part.getETag() ? StringUtils.EMPTY : part.getETag(),
log.debug(String.format("Saved object %s with checksum %s", file, part.getETag())); return new MultipartPart(partNumber, null == part.getLastModifiedDate() ? new Date(System.currentTimeMillis()) : part.getLastModifiedDate(), null == part.getETag() ? StringUtils.EMPTY : part.getETag(),