private void deleteWithRetries(final String s3Bucket, final String s3Path) throws Exception { RetryUtils.retry( (Callable<Void>) () -> { try { s3Client.deleteObject(s3Bucket, s3Path); return null; } catch (Exception e) { log.info(e, "Error while trying to delete [s3://%s/%s]", s3Bucket, s3Path); throw e; } }, S3Utils.S3RETRY, 3 ); } }
@Override public void deleteChunk(byte[] hash, long start, int len) throws IOException { String hashString = this.getHashName(hash, Main.chunkStoreEncryptionEnabled); RestS3Service s3Service = null; try { this.chunks.invalidate(hashString); s3Service = pool.borrowObject(); StorageObject obj = s3Service.getObjectDetails(this.name, hashString); int size = Integer.parseInt((String) obj.getMetadata("size")); int compressedSize = Integer.parseInt((String) obj .getMetadata("compressedsize")); this.currentLength.addAndGet(-1 * size); this.compressedLength.addAndGet(-1 * compressedSize); s3Service.deleteObject(this.name, hashString); } catch (Exception e) { SDFSLogger.getLog() .warn("Unable to delete object " + hashString, e); } finally { pool.returnObject(s3Service); } }
@Override public void kill(DataSegment segment) throws SegmentLoadingException { try { Map<String, Object> loadSpec = segment.getLoadSpec(); String s3Bucket = MapUtils.getString(loadSpec, "bucket"); String s3Path = MapUtils.getString(loadSpec, "key"); String s3DescriptorPath = S3Utils.descriptorPathForSegmentPath(s3Path); if (s3Client.isObjectInBucket(s3Bucket, s3Path)) { log.info("Removing index file[s3://%s/%s] from s3!", s3Bucket, s3Path); s3Client.deleteObject(s3Bucket, s3Path); } if (s3Client.isObjectInBucket(s3Bucket, s3DescriptorPath)) { log.info("Removing descriptor file[s3://%s/%s] from s3!", s3Bucket, s3DescriptorPath); s3Client.deleteObject(s3Bucket, s3DescriptorPath); } } catch (ServiceException e) { throw new SegmentLoadingException(e, "Couldn't kill segment[%s]: [%s]", segment.getIdentifier(), e); } }
s3Service.deleteObject(testBucket, object.getKey()); s3Service.deleteObject(testBucket, helloWorldObject.getKey()); s3Service.deleteObject(vBucketName, "versioned-object"); try { s3Service.getObject(vBucketName, "versioned-object");
s3Service.deleteObject(testBucket, object.getKey()); s3Service.deleteObject(testBucket, helloWorldObject.getKey()); s3Service.deleteObject(vBucketName, "versioned-object"); try { s3Service.getObject(vBucketName, "versioned-object");