protected void prepareStorageClass(Map<String, Object> metadata, String storageClass, boolean useDefaultStorageClass, String objectKey) { if(metadata == null) { throw new IllegalArgumentException("Null metadata not allowed."); } if(getEnableStorageClasses()) { if(storageClass == null && useDefaultStorageClass && this.defaultStorageClass != null) { // Apply default storage class storageClass = this.defaultStorageClass; log.debug("Applied default storage class '" + storageClass + "' to object '" + objectKey + "'"); } if(storageClass != null && !storageClass.equals("")) // Hack to avoid applying empty storage class (Issue #121) { metadata.put(this.getRestHeaderPrefix() + "storage-class", storageClass); } } }
protected void prepareServerSideEncryption(Map<String, Object> metadata, String serverSideEncryptionAlgorithm, String objectKey) { if(metadata == null) { throw new IllegalArgumentException("Null metadata not allowed."); } if(!getEnableServerSideEncryption()) { // Feature disabled return; } if(serverSideEncryptionAlgorithm == null && this.defaultServerSideEncryptionAlgorithm != null) { // Apply default server side encryption algorithm serverSideEncryptionAlgorithm = this.defaultServerSideEncryptionAlgorithm; log.debug("Applied default server-side encryption algorithm '" + serverSideEncryptionAlgorithm + "' to object '" + objectKey + "'"); } if(serverSideEncryptionAlgorithm != null) { metadata.put(this.getRestHeaderPrefix() + "server-side-encryption", serverSideEncryptionAlgorithm); } }
protected void prepareStorageClass(Map<String, Object> metadata, String storageClass, boolean useDefaultStorageClass, String objectKey) { if(metadata == null) { throw new IllegalArgumentException("Null metadata not allowed."); } if(getEnableStorageClasses()) { if(storageClass == null && useDefaultStorageClass && this.defaultStorageClass != null) { // Apply default storage class storageClass = this.defaultStorageClass; log.debug("Applied default storage class '" + storageClass + "' to object '" + objectKey + "'"); } if(storageClass != null && !storageClass.equals("")) // Hack to avoid applying empty storage class (Issue #121) { metadata.put(this.getRestHeaderPrefix() + "storage-class", storageClass); } } }
protected void prepareServerSideEncryption(Map<String, Object> metadata, String serverSideEncryptionAlgorithm, String objectKey) { if(metadata == null) { throw new IllegalArgumentException("Null metadata not allowed."); } if(!getEnableServerSideEncryption()) { // Feature disabled return; } if(serverSideEncryptionAlgorithm == null && this.defaultServerSideEncryptionAlgorithm != null) { // Apply default server side encryption algorithm serverSideEncryptionAlgorithm = this.defaultServerSideEncryptionAlgorithm; log.debug("Applied default server-side encryption algorithm '" + serverSideEncryptionAlgorithm + "' to object '" + objectKey + "'"); } if(serverSideEncryptionAlgorithm != null) { metadata.put(this.getRestHeaderPrefix() + "server-side-encryption", serverSideEncryptionAlgorithm); } }
/** * Prepares the metadata with the given ACL * an ACL is provided and can be represented with a HTTP header. * * @param metadata Metadata request headers * @param acl Access control list * @return true if no acl or standard, false otherwise * false if an ACL was provided but it could not be applied as a canned ACL. */ protected boolean prepareRESTHeaderAcl(Map<String, Object> metadata, AccessControlList acl) { if(metadata == null) { throw new IllegalArgumentException("Null metadata not allowed."); } if(acl != null) { String restHeaderAclValue = acl.getValueForRESTHeaderACL(); if(restHeaderAclValue != null) { metadata.put(this.getRestHeaderPrefix() + "acl", restHeaderAclValue); } else { return false; } } return true; }
/** * Prepares the metadata with the given ACL * an ACL is provided and can be represented with a HTTP header. * * @param metadata Metadata request headers * @param acl Access control list * @return true if no acl or standard, false otherwise * false if an ACL was provided but it could not be applied as a canned ACL. */ protected boolean prepareRESTHeaderAcl(Map<String, Object> metadata, AccessControlList acl) { if(metadata == null) { throw new IllegalArgumentException("Null metadata not allowed."); } if(acl != null) { String restHeaderAclValue = acl.getValueForRESTHeaderACL(); if(restHeaderAclValue != null) { metadata.put(this.getRestHeaderPrefix() + "acl", restHeaderAclValue); } else { return false; } } return true; }
/** * Sets an object's ACL details using a pre-signed PUT URL generated for that object. * This method is an implementation of the interface {@link org.jets3t.service.utils.signedurl.SignedUrlHandler}. * * @param signedAclUrl a signed URL generated with {@link org.jets3t.service.S3Service#createSignedUrl(String, String, String, String, java.util.Map, org.jets3t.service.security.ProviderCredentials, long, boolean)}. * @param acl the ACL settings to apply to the object represented by the signed URL. * @throws org.jets3t.service.ServiceException * */ public void putObjectAclWithSignedUrl(String signedAclUrl, AccessControlList acl) throws ServiceException { HttpPut putMethod = new HttpPut(signedAclUrl); if(acl != null) { String restHeaderAclValue = acl.getValueForRESTHeaderACL(); if(restHeaderAclValue != null) { putMethod.addHeader(this.getRestHeaderPrefix() + "acl", restHeaderAclValue); } else { String aclAsXml = acl.toXml(); putMethod.setEntity(new StringEntity( aclAsXml, ContentType.create("text/plain", Constants.DEFAULT_ENCODING))); } } HttpResponse httpResponse = performRequest(putMethod, new int[]{200}); // Consume response data and release connection. releaseConnection(httpResponse); }
/** * Sets an object's ACL details using a pre-signed PUT URL generated for that object. * This method is an implementation of the interface {@link org.jets3t.service.utils.signedurl.SignedUrlHandler}. * * @param signedAclUrl a signed URL generated with {@link org.jets3t.service.S3Service#createSignedUrl(String, String, String, String, java.util.Map, org.jets3t.service.security.ProviderCredentials, long, boolean)}. * @param acl the ACL settings to apply to the object represented by the signed URL. * @throws org.jets3t.service.ServiceException * */ public void putObjectAclWithSignedUrl(String signedAclUrl, AccessControlList acl) throws ServiceException { HttpPut putMethod = new HttpPut(signedAclUrl); if(acl != null) { String restHeaderAclValue = acl.getValueForRESTHeaderACL(); if(restHeaderAclValue != null) { putMethod.addHeader(this.getRestHeaderPrefix() + "acl", restHeaderAclValue); } else { String aclAsXml = acl.toXml(); putMethod.setEntity(new StringEntity( aclAsXml, ContentType.create("text/plain", Constants.DEFAULT_ENCODING))); } } HttpResponse httpResponse = performRequest(putMethod, new int[]{200}); // Consume response data and release connection. releaseConnection(httpResponse); }
map.put(StorageObject.METADATA_HEADER_CONTENT_LENGTH, String.valueOf(methodAndByteCount.getByteCount())); map = ServiceUtils.cleanRestMetadataMap( map, this.getRestHeaderPrefix(), this.getRestMetadataPrefix());
map.put(StorageObject.METADATA_HEADER_CONTENT_LENGTH, String.valueOf(methodAndByteCount.getByteCount())); map = ServiceUtils.cleanRestMetadataMap( map, this.getRestHeaderPrefix(), this.getRestMetadataPrefix());
metadata.put(this.getRestHeaderPrefix() + "copy-source", sourceKey); metadata.put(this.getRestHeaderPrefix() + "metadata-directive", "REPLACE"); metadata.put(this.getRestHeaderPrefix() + "metadata-directive", "COPY"); metadata.put(this.getRestHeaderPrefix() + "copy-source-if-modified-since", ServiceUtils.formatRfc822Date(ifModifiedSince.getTime())); if(log.isDebugEnabled()) { metadata.put(this.getRestHeaderPrefix() + "copy-source-if-unmodified-since", ServiceUtils.formatRfc822Date(ifUnmodifiedSince.getTime())); if(log.isDebugEnabled()) { metadata.put(this.getRestHeaderPrefix() + "copy-source-if-match", tags); if(log.isDebugEnabled()) { log.debug("Only copy object based on hash comparison if-match:" + tags); metadata.put(this.getRestHeaderPrefix() + "copy-source-if-none-match", tags); if(log.isDebugEnabled()) { log.debug("Only copy object based on hash comparison if-none-match:" + tags); map, this.getRestHeaderPrefix(), this.getRestMetadataPrefix());
map, this.getRestHeaderPrefix(), this.getRestMetadataPrefix())); responseObject.setMetadataComplete(true); // Flag this object as having the complete metadata set. if(!headOnly) {
map, this.getRestHeaderPrefix(), this.getRestMetadataPrefix())); responseObject.setMetadataComplete(true); // Flag this object as having the complete metadata set. if(!headOnly) {
metadata.put(this.getRestHeaderPrefix() + "copy-source", sourceKey); metadata.put(this.getRestHeaderPrefix() + "metadata-directive", "REPLACE"); metadata.put(this.getRestHeaderPrefix() + "metadata-directive", "COPY"); metadata.put(this.getRestHeaderPrefix() + "copy-source-if-modified-since", ServiceUtils.formatRfc822Date(ifModifiedSince.getTime())); if(log.isDebugEnabled()) { metadata.put(this.getRestHeaderPrefix() + "copy-source-if-unmodified-since", ServiceUtils.formatRfc822Date(ifUnmodifiedSince.getTime())); if(log.isDebugEnabled()) { metadata.put(this.getRestHeaderPrefix() + "copy-source-if-match", tags); if(log.isDebugEnabled()) { log.debug("Only copy object based on hash comparison if-match:" + tags); metadata.put(this.getRestHeaderPrefix() + "copy-source-if-none-match", tags); if(log.isDebugEnabled()) { log.debug("Only copy object based on hash comparison if-none-match:" + tags); map, this.getRestHeaderPrefix(), this.getRestMetadataPrefix());
map, this.getRestHeaderPrefix(), this.getRestMetadataPrefix())); responseObject.setMetadataComplete(true); // Flag this object as having the complete metadata set. if(!headOnly) {
map, this.getRestHeaderPrefix(), this.getRestMetadataPrefix())); responseObject.setMetadataComplete(true); // Flag this object as having the complete metadata set. if(!headOnly) {
convertHeadersToMap(httpMethod.getAllHeaders()), null, getRestHeaderPrefix(), getResourceParameterNames()); if(log.isDebugEnabled()) {
convertHeadersToMap(httpMethod.getAllHeaders()), null, getRestHeaderPrefix(), getResourceParameterNames()); if(log.isDebugEnabled()) {
map.putAll(convertHeadersToMap(httpResponse.getAllHeaders())); uploadedObject.replaceAllMetadata(ServiceUtils.cleanRestMetadataMap( map, this.getRestHeaderPrefix(), this.getRestMetadataPrefix()));
map.putAll(convertHeadersToMap(httpResponse.getAllHeaders())); uploadedObject.replaceAllMetadata(ServiceUtils.cleanRestMetadataMap( map, this.getRestHeaderPrefix(), this.getRestMetadataPrefix()));