public static boolean isObjectInBucket(RestS3Service s3Client, String bucketName, String objectKey) throws ServiceException { try { s3Client.getObjectDetails(bucketName, objectKey); } catch (ServiceException e) { if (404 == e.getResponseCode() || "NoSuchKey".equals(e.getErrorCode()) || "NoSuchBucket".equals(e.getErrorCode())) { return false; } if ("AccessDenied".equals(e.getErrorCode())) { // Object is inaccessible to current user, but does exist. return true; } // Something else has gone wrong throw e; } return true; }
public static FileObject buildFileObject(final URI uri, final RestS3Service s3Client) throws ServiceException final StorageObject s3Obj = s3Client.getObjectDetails(coords.bucket, coords.path); final String path = uri.getPath();
@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 boolean isInStorage() { try { RestS3Service service = null; try { service = new RestS3Service(new AWSCredentials(getAccess(), getSecret())); service.getObjectDetails(getBucket(), getPath()); return true; } finally { if (service != null) { service.shutdown(); } } } catch (ServiceException error) { return false; } }
S3Object objectDetailsOnly = s3Service.getObjectDetails(testBucket, TEST_OBJECT_NAME); System.out.println("S3Object, details only: " + objectDetailsOnly);
S3Object objectDetailsOnly = s3Service.getObjectDetails(testBucket, TEST_OBJECT_NAME); System.out.println("S3Object, details only: " + objectDetailsOnly);