List of usage examples for com.amazonaws.services.s3.model ObjectListing getMaxKeys
public int getMaxKeys()
maxKeys
parameter originally used to request this object listing, or the default maxKeys
value provided by Amazon S3 if the requester didn't specify a value. From source file:com.eucalyptus.objectstorage.providers.s3.S3ProviderClient.java
License:Open Source License
@Override public ListBucketResponseType listBucket(ListBucketType request) throws S3Exception { ListBucketResponseType reply = request.getReply(); User requestUser = getRequestUser(request); OsgInternalS3Client internalS3Client = null; try {/*ww w .j a va 2s .c o m*/ internalS3Client = getS3Client(requestUser); AmazonS3Client s3Client = internalS3Client.getS3Client(); ListObjectsRequest listRequest = new ListObjectsRequest(); listRequest.setBucketName(request.getBucket()); listRequest.setDelimiter(Strings.isNullOrEmpty(request.getDelimiter()) ? null : request.getDelimiter()); listRequest.setMarker(Strings.isNullOrEmpty(request.getMarker()) ? null : request.getMarker()); listRequest.setMaxKeys((request.getMaxKeys() == null ? null : Integer.parseInt(request.getMaxKeys()))); listRequest.setPrefix(Strings.isNullOrEmpty(request.getPrefix()) ? null : request.getPrefix()); ObjectListing response = s3Client.listObjects(listRequest); /* Non-optional, must have non-null values */ reply.setName(request.getBucket()); reply.setMaxKeys(response.getMaxKeys()); reply.setMarker(response.getMarker() == null ? "" : response.getMarker()); reply.setPrefix(response.getPrefix() == null ? "" : response.getPrefix()); reply.setIsTruncated(response.isTruncated()); /* Optional */ reply.setNextMarker(response.getNextMarker()); reply.setDelimiter(response.getDelimiter()); if (reply.getContents() == null) { reply.setContents(new ArrayList<ListEntry>()); } if (reply.getCommonPrefixesList() == null) { reply.setCommonPrefixesList(new ArrayList<CommonPrefixesEntry>()); } for (S3ObjectSummary obj : response.getObjectSummaries()) { //Add entry, note that the canonical user is set based on requesting user, not returned user reply.getContents() .add(new ListEntry(obj.getKey(), DateFormatter.dateToHeaderFormattedString(obj.getLastModified()), obj.getETag(), obj.getSize(), getCanonicalUser(requestUser), obj.getStorageClass())); } if (response.getCommonPrefixes() != null && response.getCommonPrefixes().size() > 0) { reply.setCommonPrefixesList(new ArrayList<CommonPrefixesEntry>()); for (String s : response.getCommonPrefixes()) { reply.getCommonPrefixesList().add(new CommonPrefixesEntry(s)); } } return reply; } catch (AmazonServiceException e) { LOG.debug("Error from backend", e); throw S3ExceptionMapper.fromAWSJavaSDK(e); } }
From source file:com.images3.data.impl.ImageContentAccessImplS3.java
License:Apache License
private void deleteAllImageContent(AmazonS3 client, AmazonS3Bucket bucket, ObjectListing objList) { boolean isFinished = false; while (!isFinished) { DeleteObjectsRequest request = new DeleteObjectsRequest(bucket.getName()); List<KeyVersion> keys = new ArrayList<KeyVersion>(objList.getMaxKeys()); for (S3ObjectSummary sum : objList.getObjectSummaries()) { keys.add(new KeyVersion(sum.getKey())); }//from w w w. j a v a2 s . com request.setKeys(keys); client.deleteObjects(request); if (objList.isTruncated()) { objList = client.listNextBatchOfObjects(objList); } else { isFinished = true; } } }
From source file:com.liferay.portal.store.s3.S3Store.java
License:Open Source License
protected List<S3ObjectSummary> getS3ObjectSummaries(String prefix) { try {/*from www .j ava 2s . c o m*/ ListObjectsRequest listObjectsRequest = new ListObjectsRequest(); listObjectsRequest.withBucketName(_bucketName); listObjectsRequest.withPrefix(prefix); ObjectListing objectListing = _amazonS3.listObjects(listObjectsRequest); List<S3ObjectSummary> s3ObjectSummaries = new ArrayList<>(objectListing.getMaxKeys()); while (true) { s3ObjectSummaries.addAll(objectListing.getObjectSummaries()); if (objectListing.isTruncated()) { objectListing = _amazonS3.listNextBatchOfObjects(objectListing); } else { break; } } return s3ObjectSummaries; } catch (AmazonClientException ace) { throw transform(ace); } }
From source file:com.shareplaylearn.models.UserItemManager.java
License:Open Source License
/** * This is not good enough. It slows things down, and still costs money. * Eventually, we should have an async task that updates a local cache of * used storage. If the cache says your below X of the limit (think atms), * you're good. Once you get up close, ping Amazon every time. * @param objectListing//from w ww. ja v a2 s .c om * @param maxSize * @return */ private Response checkObjectListingSize(ObjectListing objectListing, int maxSize) { if (objectListing.isTruncated() && objectListing.getMaxKeys() >= maxSize) { log.error("Error, too many uploads"); return Response.status(418).entity("I'm a teapot! j/k - not enough space " + maxSize).build(); } if (objectListing.getObjectSummaries().size() >= maxSize) { log.error("Error, too many uploads"); return Response.status(418) .entity("I'm a teapot! Er, well, at least I can't hold " + maxSize + " stuff.").build(); } return Response.status(Response.Status.OK).entity("OK").build(); }