Example usage for com.amazonaws.services.s3.model ObjectListing getMaxKeys

List of usage examples for com.amazonaws.services.s3.model ObjectListing getMaxKeys

Introduction

In this page you can find the example usage for com.amazonaws.services.s3.model ObjectListing getMaxKeys.

Prototype

public int getMaxKeys() 

Source Link

Document

Gets the 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.

Usage

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();
}