public boolean apply(String in) { try { clearContainer(in, recursive()); return deleteAndVerifyContainerGone(in); } catch (ContainerNotFoundException e) { return true; } } }, 30000).apply(path), "%s still exists after deleting!", path);
/** * This implementation invokes {@link #deleteAndEnsurePathGone} * * @param container * bucket name */ @Override public void deleteContainer(String container) { deletePathAndEnsureGone(container); }
/** * This implementation invokes * {@link #getBlob(String,String,org.jclouds.blobstore.options.GetOptions)} * * @param container * container name * @param key * blob key */ @Override public Blob getBlob(String container, String key) { return getBlob(container, key, org.jclouds.blobstore.options.GetOptions.NONE); }
@Beta protected String putMultipartBlob(String container, Blob blob, PutOptions overrides, ListeningExecutorService executor) { ArrayList<ListenableFuture<MultipartPart>> parts = new ArrayList<ListenableFuture<MultipartPart>>(); MultipartUpload mpu = initiateMultipartUpload(container, blob.getMetadata(), overrides); try { long contentLength = blob.getMetadata().getContentMetadata().getContentLength(); MultipartUploadSlicingAlgorithm algorithm = new MultipartUploadSlicingAlgorithm( getMinimumMultipartPartSize(), getMaximumMultipartPartSize(), getMaximumNumberOfParts()); long partSize = algorithm.calculateChunkSize(contentLength); int partNumber = 1; for (Payload payload : slicer.slice(blob.getPayload(), partSize)) { BlobUploader b = new BlobUploader(mpu, partNumber++, payload); parts.add(executor.submit(b)); } return completeMultipartUpload(mpu, Futures.getUnchecked(Futures.allAsList(parts))); } catch (RuntimeException re) { abortMultipartUpload(mpu); throw re; } }
@Override public String copyBlob(String fromContainer, String fromName, String toContainer, String toName, CopyOptions options) { Blob blob = getBlob(fromContainer, fromName); if (blob == null) { throw new KeyNotFoundException(fromContainer, fromName, "while copying"); eTag = maybeQuoteETag(eTag); if (options.ifMatch() != null && !maybeQuoteETag(options.ifMatch()).equals(eTag)) { throw returnResponseException(412); if (options.ifNoneMatch() != null && maybeQuoteETag(options.ifNoneMatch()).equals(eTag)) { throw returnResponseException(412); if (lastModified != null) { if (options.ifModifiedSince() != null && lastModified.compareTo(options.ifModifiedSince()) <= 0) { throw returnResponseException(412); throw returnResponseException(412); try { is = blob.getPayload().openStream(); BlobBuilder.PayloadBlobBuilder builder = blobBuilder(toName) .payload(is); Long contentLength = blob.getMetadata().getContentMetadata().getContentLength(); return putBlob(toContainer, builder.build()); } catch (IOException ioe) { throw Throwables.propagate(ioe);
/** * This implementation invokes * {@link #list(String,org.jclouds.blobstore.options.ListContainerOptions)} * * @param container * container name */ @Override public PageSet<? extends StorageMetadata> list(String container) { return this.list(container, org.jclouds.blobstore.options.ListContainerOptions.NONE); }
/** * This implementation invokes {@link #clearContainer} with the * {@link ListContainerOptions#recursive} option. * * @param container * container name */ @Override public void clearContainer(String containerName) { clearContainer(containerName, recursive()); }
/** * This implementation invokes {@link #countBlobs} with the * {@link ListContainerOptions#recursive} option. * * @param container * container name */ @Override public long countBlobs(String container) { return countBlobs(container, recursive()); }
@Override public boolean deleteContainerIfEmpty(String container) { try { return deleteAndVerifyContainerGone(container); } catch (ContainerNotFoundException cnfe) { return true; } }
@Override public String copyBlob(String fromContainer, String fromName, String toContainer, String toName, CopyOptions options) { if (options.ifMatch() != null) { throw new UnsupportedOperationException("Atmos does not support ifMatch"); } if (options.ifNoneMatch() != null) { throw new UnsupportedOperationException("Atmos does not support ifNoneMatch"); } return super.copyBlob(fromContainer, fromName, toContainer, toName, options); } }
@Beta protected String putMultipartBlob(String container, Blob blob, PutOptions overrides, ListeningExecutorService executor) { ArrayList<ListenableFuture<MultipartPart>> parts = new ArrayList<ListenableFuture<MultipartPart>>(); MultipartUpload mpu = initiateMultipartUpload(container, blob.getMetadata(), overrides); try { long contentLength = blob.getMetadata().getContentMetadata().getContentLength(); MultipartUploadSlicingAlgorithm algorithm = new MultipartUploadSlicingAlgorithm( getMinimumMultipartPartSize(), getMaximumMultipartPartSize(), getMaximumNumberOfParts()); long partSize = algorithm.calculateChunkSize(contentLength); int partNumber = 1; for (Payload payload : slicer.slice(blob.getPayload(), partSize)) { BlobUploader b = new BlobUploader(mpu, partNumber++, payload); parts.add(executor.submit(b)); } return completeMultipartUpload(mpu, Futures.getUnchecked(Futures.allAsList(parts))); } catch (RuntimeException re) { abortMultipartUpload(mpu); throw re; } }
@Override public String copyBlob(String fromContainer, String fromName, String toContainer, String toName, CopyOptions options) { Blob blob = getBlob(fromContainer, fromName); if (blob == null) { throw new KeyNotFoundException(fromContainer, fromName, "while copying"); eTag = maybeQuoteETag(eTag); if (options.ifMatch() != null && !maybeQuoteETag(options.ifMatch()).equals(eTag)) { throw returnResponseException(412); if (options.ifNoneMatch() != null && maybeQuoteETag(options.ifNoneMatch()).equals(eTag)) { throw returnResponseException(412); if (lastModified != null) { if (options.ifModifiedSince() != null && lastModified.compareTo(options.ifModifiedSince()) <= 0) { throw returnResponseException(412); throw returnResponseException(412); try { is = blob.getPayload().openStream(); BlobBuilder.PayloadBlobBuilder builder = blobBuilder(toName) .payload(is); Long contentLength = blob.getMetadata().getContentMetadata().getContentLength(); return putBlob(toContainer, builder.build()); } catch (IOException ioe) { throw Throwables.propagate(ioe);
/** * This implementation invokes * {@link #list(String,org.jclouds.blobstore.options.ListContainerOptions)} * * @param container * container name */ @Override public PageSet<? extends StorageMetadata> list(String container) { return this.list(container, org.jclouds.blobstore.options.ListContainerOptions.NONE); }
/** * This implementation invokes {@link #clearContainer} with the * {@link ListContainerOptions#recursive} option. * * @param container * container name */ @Override public void clearContainer(String containerName) { clearContainer(containerName, recursive()); }
/** * This implementation invokes {@link #countBlobs} with the * {@link ListContainerOptions#recursive} option. * * @param container * container name */ @Override public long countBlobs(String container) { return countBlobs(container, recursive()); }
@Override public boolean deleteContainerIfEmpty(String container) { try { return deleteAndVerifyContainerGone(container); } catch (ContainerNotFoundException cnfe) { return true; } }
@Override public String copyBlob(String fromContainer, String fromName, String toContainer, String toName, CopyOptions options) { if (options.ifMatch() != null) { throw new UnsupportedOperationException("Atmos does not support ifMatch"); } if (options.ifNoneMatch() != null) { throw new UnsupportedOperationException("Atmos does not support ifNoneMatch"); } return super.copyBlob(fromContainer, fromName, toContainer, toName, options); } }
@Beta protected String putMultipartBlob(String container, Blob blob, PutOptions overrides, ListeningExecutorService executor) { ArrayList<ListenableFuture<MultipartPart>> parts = new ArrayList<ListenableFuture<MultipartPart>>(); MultipartUpload mpu = initiateMultipartUpload(container, blob.getMetadata(), overrides); try { long contentLength = blob.getMetadata().getContentMetadata().getContentLength(); getMinimumMultipartPartSize(), getMaximumMultipartPartSize(), getMaximumNumberOfParts()); long partSize = algorithm.calculateChunkSize(contentLength); int partNumber = 1; parts.add(executor.submit(b)); return completeMultipartUpload(mpu, Futures.getUnchecked(Futures.allAsList(parts))); } catch (RuntimeException re) { abortMultipartUpload(mpu); throw re;
@Override public String copyBlob(String fromContainer, String fromName, String toContainer, String toName, CopyOptions options) { Blob blob = getBlob(fromContainer, fromName); if (blob == null) { throw new KeyNotFoundException(fromContainer, fromName, "while copying"); eTag = maybeQuoteETag(eTag); if (options.ifMatch() != null && !maybeQuoteETag(options.ifMatch()).equals(eTag)) { throw returnResponseException(412); if (options.ifNoneMatch() != null && maybeQuoteETag(options.ifNoneMatch()).equals(eTag)) { throw returnResponseException(412); if (lastModified != null) { if (options.ifModifiedSince() != null && lastModified.compareTo(options.ifModifiedSince()) <= 0) { throw returnResponseException(412); throw returnResponseException(412); try { is = blob.getPayload().openStream(); BlobBuilder.PayloadBlobBuilder builder = blobBuilder(toName) .payload(is); Long contentLength = blob.getMetadata().getContentMetadata().getContentLength(); return putBlob(toContainer, builder.build()); } catch (IOException ioe) { throw Throwables.propagate(ioe);
public boolean apply(String in) { try { clearContainer(in, recursive()); return deleteAndVerifyContainerGone(in); } catch (ContainerNotFoundException e) { return true; } } }, 30000).apply(path), "%s still exists after deleting!", path);