Example usage for com.amazonaws.services.s3 AmazonS3Client getObjectMetadata

List of usage examples for com.amazonaws.services.s3 AmazonS3Client getObjectMetadata

Introduction

In this page you can find the example usage for com.amazonaws.services.s3 AmazonS3Client getObjectMetadata.

Prototype

@Override
    public ObjectMetadata getObjectMetadata(GetObjectMetadataRequest getObjectMetadataRequest)
            throws SdkClientException, AmazonServiceException 

Source Link

Usage

From source file:com.eucalyptus.objectstorage.providers.s3.S3ProviderClient.java

License:Open Source License

@Override
public HeadObjectResponseType headObject(final HeadObjectType request) throws S3Exception {
    User requestUser = getRequestUser(request);
    OsgInternalS3Client internalS3Client = null;

    GetObjectMetadataRequest getMetadataRequest = new GetObjectMetadataRequest(request.getBucket(),
            request.getKey());/* ww w. j av a2  s .  c o  m*/
    getMetadataRequest.setVersionId(request.getVersionId());
    try {
        internalS3Client = getS3Client(requestUser);
        AmazonS3Client s3Client = internalS3Client.getS3Client();
        ObjectMetadata metadata;
        metadata = s3Client.getObjectMetadata(getMetadataRequest);

        HeadObjectResponseType reply = request.getReply();
        populateResponseMetadata(reply, metadata);
        return reply;
    } catch (AmazonServiceException e) {
        LOG.debug("Error from backend", e);
        throw S3ExceptionMapper.fromAWSJavaSDK(e);
    }

}

From source file:org.broadleafcommerce.vendor.amazon.s3.S3FileServiceProvider.java

License:Apache License

protected List<String> addOrUpdateResourcesInternal(S3Configuration s3config, AmazonS3Client s3,
        FileWorkArea workArea, List<File> files, boolean removeFilesFromWorkArea) {
    final List<String> resourcePaths = new ArrayList<String>();
    for (final File srcFile : files) {
        if (!srcFile.getAbsolutePath().startsWith(workArea.getFilePathLocation())) {
            throw new FileServiceException("Attempt to update file " + srcFile.getAbsolutePath()
                    + " that is not in the passed in WorkArea " + workArea.getFilePathLocation());
        }/*from w  w w  . ja  v a  2s .c  om*/
        final long ts1 = System.currentTimeMillis();
        final String fileName = srcFile.getAbsolutePath().substring(workArea.getFilePathLocation().length());
        final String resourceName = buildResourceName(s3config, fileName);

        ObjectMetadata meta = null;
        try {
            final GetObjectMetadataRequest get = new GetObjectMetadataRequest(s3config.getDefaultBucketName(),
                    resourceName);
            meta = s3.getObjectMetadata(get);
        } catch (AmazonS3Exception ex) {
            meta = null;
        }
        final long ts2 = System.currentTimeMillis();

        if (meta == null || meta.getContentLength() != srcFile.length()) {
            final PutObjectRequest put = new PutObjectRequest(s3config.getDefaultBucketName(), resourceName,
                    srcFile);

            if ((s3config.getStaticAssetFileExtensionPattern() != null) && s3config
                    .getStaticAssetFileExtensionPattern().matcher(getExtension(fileName)).matches()) {
                put.setCannedAcl(CannedAccessControlList.PublicRead);
            }

            s3.putObject(put);
            final long ts3 = System.currentTimeMillis();

            if (LOG.isTraceEnabled()) {
                final String s3Uri = String.format("s3://%s/%s", s3config.getDefaultBucketName(), resourceName);
                final String msg = String.format(
                        "%s copied/updated to %s; queryTime = %dms; uploadTime = %dms; totalTime = %dms",
                        srcFile.getAbsolutePath(), s3Uri, ts2 - ts1, ts3 - ts2, ts3 - ts1);

                LOG.trace(msg);
            }
        } else {
            if (LOG.isTraceEnabled()) {
                final String s3Uri = String.format("s3://%s/%s", s3config.getDefaultBucketName(), resourceName);
                final String msg = String.format(
                        "%s already at %s with same filesize = %dbytes; queryTime = %dms",
                        srcFile.getAbsolutePath(), s3Uri, srcFile.length(), ts2 - ts1);

                LOG.trace(msg);
            }
        }

        resourcePaths.add(fileName);
    }
    return resourcePaths;
}