All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.netease.cloud.services.nos.model.GeneratePresignedUrlRequest Maven / Gradle / Ivy

The newest version!
package com.netease.cloud.services.nos.model;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import com.netease.cloud.WebServiceRequest;
import com.netease.cloud.HttpMethod;
import com.netease.cloud.services.nos.Nos;

/**
 * 

* Contains options to genearate a pre-signed URL for an resource. *

*

* Pre-signed URLs allow clients to form a URL for an resource and sign it with * the current security credentials. A pre-signed URL may be passed around for * other users to access the resource without providing them access to an * account's security credentials. *

* * @see Nos#generatePresignedUrl(GeneratePresignedUrlRequest) */ public class GeneratePresignedUrlRequest extends WebServiceRequest { /** * The HTTP method (GET, PUT, DELETE, HEAD) to be used in this request and * when the pre-signed URL is used */ private HttpMethod method; /** The name of the bucket involved in this request */ private String bucketName; /** The key of the object involved in this request */ private String key; /** * An optional expiration date at which point the generated pre-signed URL * will no longer be accepted by . If not specified, a default value will be * supplied. */ private Date expiration; /** * An optional parameter. If specified, nos response will set content-disposition * header to attachment so browsers will try to download the object rather than * open it in the browser. */ private String download; /** * */ private String ifNotFound; /** * An optional map of additional parameters to include in the pre-signed * URL. Adding additional request parameters enables more advanced * pre-signed URLs, such as accessing 's torrent resource for an object, or * for specifying a version ID when accessing an object. */ private Map requestParameters = new HashMap(); /** * Optional field that overrides headers on the response. */ private ResponseHeaderOverrides responseHeaders; /** * Creates a new request for generating a pre-signed URL that can be used as * part of an HTTP GET request to access the object stored under the * specified key in the specified bucket. * * @param bucketName * The name of the bucket containing the desired object. * @param key * The key under which the desired object is stored. */ public GeneratePresignedUrlRequest(String bucketName, String key) { this(bucketName, key, HttpMethod.GET); } /** *

* Creates a new request for generating a pre-signed URL that can be used as * part of an HTTP request to access the specified resource. *

*

* When specifying an HTTP method, you must send the pre-signed URL * with the same HTTP method in order to successfully use the pre-signed * URL. *

* * @param bucketName * The name of the bucket involved in the operation. * @param key * The key of the object involved in the operation. * @param method * The HTTP method (GET, PUT, DELETE, HEAD) to be used in the * request when the pre-signed URL is used. */ public GeneratePresignedUrlRequest(String bucketName, String key, HttpMethod method) { this.bucketName = bucketName; this.key = key; this.method = method; } /** * The HTTP method (GET, PUT, DELETE, HEAD) to be used in this request. The * same HTTP method must be used in the request when the pre-signed * URL is used. * * @return The HTTP method (GET, PUT, DELETE, HEAD) to be used in this * request and when the pre-signed URL is used. */ public HttpMethod getMethod() { return method; } /** * Sets the HTTP method (GET, PUT, DELETE, HEAD) to be used in this request. * The same HTTP method must be used in the request when the * pre-signed URL is used. * * @param method * The HTTP method (GET, PUT, DELETE, HEAD) to be used in this * request. */ public void setMethod(HttpMethod method) { this.method = method; } /** * Sets the HTTP method (GET, PUT, DELETE, HEAD) to be used in this request, * and returns this request object to enable additional method calls to be * chained together. *

* The same HTTP method must be used in the request when the * pre-signed URL is used. * * @param method * The HTTP method (GET, PUT, DELETE, HEAD) to be used in this * request. * * @return The updated request object, so that additional method calls can * be chained together. */ public GeneratePresignedUrlRequest withMethod(HttpMethod method) { setMethod(method); return this; } /** * Returns the name of the bucket involved in this request. * * @return the name of the bucket involved in this request. */ public String getBucketName() { return bucketName; } /** * Sets the name of the bucket involved in this request. * * @param bucketName * the name of the bucket involved in this request. */ public void setBucketName(String bucketName) { this.bucketName = bucketName; } /** * Sets the name of the bucket involved in this request, and returns this * request object to enable additional method calls to be chained together. * * @param bucketName * the name of the bucket involved in this request. * * @return The updated request object, so that additional method calls can * be chained together. */ public GeneratePresignedUrlRequest withBucketName(String bucketName) { setBucketName(bucketName); return this; } /** * Returns the key of the object involved in this request. * * @return The key of the object involved in this request. */ public String getKey() { return key; } /** * Sets the key of the object involved in this request. * * @param key * the key of the object involved in this request. */ public void setKey(String key) { this.key = key; } /** * Sets the key of the object involved in this request, and returns this * request object to enable additional method calls to be chained together. * * @param key * the key of the object involved in this request. * * @return The updated request object, so that additional method calls can * be chained together. */ public GeneratePresignedUrlRequest withKey(String key) { setKey(key); return this; } /** * The expiration date at which point the new pre-signed URL will no longer * be accepted by . If not specified, a default value will be supplied. * * @return The expiration date at which point the new pre-signed URL will no * longer be accepted by . */ public Date getExpiration() { return expiration; } /** * Sets the expiration date at which point the new pre-signed URL will no * longer be accepted by . If not specified, a default value will be * supplied. * * @param expiration * The expiration date at which point the new pre-signed URL will * no longer be accepted by . */ public void setExpiration(Date expiration) { this.expiration = expiration; } /** * The download parameter which indicate the default name when browser * try to download the object * * @return the download parameter which indicate the default name when browser * try to download the object. */ public String getDownload() { return download; } /** * Sets the download parameter which browser will set to default file name when * try to download it. * * @param download * the download parameter which indicate the default name when browser * try to download the object */ public void setDownload(String download) { this.download = download; } public String getIfNotFound() { return ifNotFound; } public void setIfNotFound(String ifNotFound) { this.ifNotFound = ifNotFound; } /** * Sets the expiration date at which point the new pre-signed URL will no * longer be accepted by , and returns this request object to enable * additional method calls to be chained together. *

* If not specified, a default value will be supplied. * * @param expiration * The expiration date at which point the new pre-signed URL will * no longer be accepted by . * * @return The updated request object, so that additional method calls can * be chained together. */ public GeneratePresignedUrlRequest withExpiration(Date expiration) { setExpiration(expiration); return this; } /** * Adds an additional request parameter to be included in the pre-signed * URL. Adding additional request parameters enables more advanced * pre-signed URLs, such as accessing 's torrent resource for an object, or * for specifying a version ID when accessing an object. * * @param key * The name of the request parameter, as it appears in the URL's * query string (e.g. versionId). * @param value * The (optional) value of the request parameter being added. */ public void addRequestParameter(String key, String value) { requestParameters.put(key, value); } /** * Returns the complete map of additional request parameters to be included * in the pre-signed URL. * * @return The complete map of additional request parameters to be included * in the pre-signed URL. */ public Map getRequestParameters() { return requestParameters; } /** * Returns the headers to be overridden in the service response. * * @return the headers to be overridden in the service response. */ public ResponseHeaderOverrides getResponseHeaders() { return responseHeaders; } /** * Sets the headers to be overridden in the service response. * * @param responseHeaders * The headers to be overridden in the service response. */ public void setResponseHeaders(ResponseHeaderOverrides responseHeaders) { this.responseHeaders = responseHeaders; } /** * Sets the headers to be overridden in the service response and returns * this object, for method chaining. * * @param responseHeaders * The headers to be overridden in the service response. * * * @return This {@link GeneratePresignedUrlRequest} for method chaining. */ public GeneratePresignedUrlRequest withResponseHeaders(ResponseHeaderOverrides responseHeaders) { setResponseHeaders(responseHeaders); return this; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy