List of usage examples for com.amazonaws.services.s3 AmazonS3Client getObjectMetadata
@Override public ObjectMetadata getObjectMetadata(GetObjectMetadataRequest getObjectMetadataRequest) throws SdkClientException, AmazonServiceException
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; }