use of com.aliyun.oss.common.comm.RequestMessage in project aliyun-oss-java-sdk by aliyun.
the class OSSObjectOperation method getSymlink.
public OSSSymlink getSymlink(GenericRequest genericRequest) throws OSSException, ClientException {
assertParameterNotNull(genericRequest, "genericRequest");
String bucketName = genericRequest.getBucketName();
String symlink = genericRequest.getKey();
assertParameterNotNull(bucketName, "bucketName");
assertParameterNotNull(symlink, "symlink");
ensureBucketNameValid(bucketName);
ensureObjectKeyValid(symlink);
Map<String, String> params = new HashMap<String, String>();
params.put(SUBRESOURCE_SYMLINK, null);
RequestMessage request = new OSSRequestMessageBuilder(getInnerClient()).setEndpoint(getEndpoint()).setMethod(HttpMethod.GET).setBucket(bucketName).setKey(symlink).setParameters(params).setOriginalRequest(genericRequest).build();
OSSSymlink symbolicLink = doOperation(request, getSymbolicLinkResponseParser, bucketName, symlink, true);
if (symbolicLink != null) {
symbolicLink.setSymlink(new String(symlink));
}
return symbolicLink;
}
use of com.aliyun.oss.common.comm.RequestMessage in project aliyun-oss-java-sdk by aliyun.
the class OSSObjectOperation method getObjectAcl.
public ObjectAcl getObjectAcl(GenericRequest genericRequest) throws OSSException, ClientException {
assertParameterNotNull(genericRequest, "genericRequest");
String bucketName = genericRequest.getBucketName();
String key = genericRequest.getKey();
assertParameterNotNull(bucketName, "bucketName");
ensureBucketNameValid(bucketName);
assertParameterNotNull(key, "key");
ensureObjectKeyValid(key);
Map<String, String> params = new HashMap<String, String>();
params.put(SUBRESOURCE_ACL, null);
RequestMessage request = new OSSRequestMessageBuilder(getInnerClient()).setEndpoint(getEndpoint()).setMethod(HttpMethod.GET).setBucket(bucketName).setKey(key).setParameters(params).setOriginalRequest(genericRequest).build();
return doOperation(request, getObjectAclResponseParser, bucketName, key, true);
}
use of com.aliyun.oss.common.comm.RequestMessage in project aliyun-oss-java-sdk by aliyun.
the class OSSObjectOperation method processObject.
public GenericResult processObject(ProcessObjectRequest processObjectRequest) throws OSSException, ClientException {
assertParameterNotNull(processObjectRequest, "genericRequest");
String bucketName = processObjectRequest.getBucketName();
String key = processObjectRequest.getKey();
String process = processObjectRequest.getProcess();
assertParameterNotNull(bucketName, "bucketName");
ensureBucketNameValid(bucketName);
assertParameterNotNull(key, "key");
ensureObjectKeyValid(key);
assertStringNotNullOrEmpty(process, "process");
Map<String, String> params = new HashMap<String, String>();
params.put(RequestParameters.SUBRESOURCE_PROCESS, null);
byte[] rawContent = processObjectRequestMarshaller.marshall(processObjectRequest);
RequestMessage request = new OSSRequestMessageBuilder(getInnerClient()).setEndpoint(getEndpoint()).setMethod(HttpMethod.POST).setBucket(bucketName).setKey(key).setParameters(params).setInputSize(rawContent.length).setInputStream(new ByteArrayInputStream(rawContent)).setOriginalRequest(processObjectRequest).build();
return doOperation(request, ResponseParsers.processObjectResponseParser, bucketName, key, true);
}
use of com.aliyun.oss.common.comm.RequestMessage in project aliyun-oss-java-sdk by aliyun.
the class OSSObjectOperation method copyObject.
/**
* Copy an existing object to another one.
*/
public CopyObjectResult copyObject(CopyObjectRequest copyObjectRequest) throws OSSException, ClientException {
assertParameterNotNull(copyObjectRequest, "copyObjectRequest");
Map<String, String> headers = new HashMap<String, String>();
populateCopyObjectHeaders(copyObjectRequest, headers);
RequestMessage request = new OSSRequestMessageBuilder(getInnerClient()).setEndpoint(getEndpoint()).setMethod(HttpMethod.PUT).setBucket(copyObjectRequest.getDestinationBucketName()).setKey(copyObjectRequest.getDestinationKey()).setHeaders(headers).setOriginalRequest(copyObjectRequest).build();
return doOperation(request, copyObjectResponseParser, copyObjectRequest.getDestinationBucketName(), copyObjectRequest.getDestinationKey(), true);
}
use of com.aliyun.oss.common.comm.RequestMessage in project aliyun-oss-java-sdk by aliyun.
the class OSSObjectOperation method writeObjectInternal.
private <RequestType extends PutObjectRequest, ResponseType> ResponseType writeObjectInternal(WriteMode mode, RequestType originalRequest, ResponseParser<ResponseType> responseParser) {
final String bucketName = originalRequest.getBucketName();
final String key = originalRequest.getKey();
InputStream originalInputStream = originalRequest.getInputStream();
ObjectMetadata metadata = originalRequest.getMetadata();
if (metadata == null) {
metadata = new ObjectMetadata();
}
assertParameterNotNull(bucketName, "bucketName");
assertParameterNotNull(key, "key");
ensureBucketNameValid(bucketName);
ensureObjectKeyValid(key);
ensureCallbackValid(originalRequest.getCallback());
InputStream repeatableInputStream = null;
if (originalRequest.getFile() != null) {
File toUpload = originalRequest.getFile();
if (!checkFile(toUpload)) {
getLog().info("Illegal file path: " + toUpload.getPath());
throw new ClientException("Illegal file path: " + toUpload.getPath());
}
metadata.setContentLength(toUpload.length());
if (metadata.getContentType() == null) {
metadata.setContentType(Mimetypes.getInstance().getMimetype(toUpload, key));
}
try {
repeatableInputStream = new RepeatableFileInputStream(toUpload);
} catch (IOException ex) {
logException("Cannot locate file to upload: ", ex);
throw new ClientException("Cannot locate file to upload: ", ex);
}
} else {
assertTrue(originalInputStream != null, "Please specify input stream or file to upload");
if (metadata.getContentType() == null) {
metadata.setContentType(Mimetypes.getInstance().getMimetype(key));
}
try {
repeatableInputStream = newRepeatableInputStream(originalInputStream);
} catch (IOException ex) {
logException("Cannot wrap to repeatable input stream: ", ex);
throw new ClientException("Cannot wrap to repeatable input stream: ", ex);
}
}
Map<String, String> headers = new HashMap<String, String>();
populateRequestMetadata(headers, metadata);
populateRequestCallback(headers, originalRequest.getCallback());
Map<String, String> params = new LinkedHashMap<String, String>();
populateWriteObjectParams(mode, originalRequest, params);
RequestMessage httpRequest = new OSSRequestMessageBuilder(getInnerClient()).setEndpoint(getEndpoint()).setMethod(WriteMode.getMappingMethod(mode)).setBucket(bucketName).setKey(key).setHeaders(headers).setParameters(params).setInputStream(repeatableInputStream).setInputSize(determineInputStreamLength(repeatableInputStream, metadata.getContentLength())).setOriginalRequest(originalRequest).build();
List<ResponseHandler> reponseHandlers = new ArrayList<ResponseHandler>();
reponseHandlers.add(new OSSCallbackErrorResponseHandler());
final ProgressListener listener = originalRequest.getProgressListener();
ResponseType result = null;
try {
publishProgress(listener, ProgressEventType.TRANSFER_STARTED_EVENT);
if (originalRequest.getCallback() == null) {
result = doOperation(httpRequest, responseParser, bucketName, key, true);
} else {
result = doOperation(httpRequest, responseParser, bucketName, key, true, null, reponseHandlers);
}
publishProgress(listener, ProgressEventType.TRANSFER_COMPLETED_EVENT);
} catch (RuntimeException e) {
publishProgress(listener, ProgressEventType.TRANSFER_FAILED_EVENT);
throw e;
}
return result;
}
Aggregations