zoukankan      html  css  js  c++  java
  • java 调用阿里云OSS

    1、重写OSS

       1 import static com.aliyun.oss.common.utils.CodingUtils.assertParameterNotNull;
       2 import static com.aliyun.oss.common.utils.IOUtils.checkFile;
       3 import static com.aliyun.oss.common.utils.LogUtils.logException;
       4 import static com.aliyun.oss.internal.OSSConstants.DEFAULT_CHARSET_NAME;
       5 import static com.aliyun.oss.internal.OSSConstants.DEFAULT_OSS_ENDPOINT;
       6 import static com.aliyun.oss.internal.OSSUtils.OSS_RESOURCE_MANAGER;
       7 import static com.aliyun.oss.internal.OSSUtils.ensureBucketNameValid;
       8 
       9 import java.io.File;
      10 import java.io.FileInputStream;
      11 import java.io.FileNotFoundException;
      12 import java.io.IOException;
      13 import java.io.InputStream;
      14 import java.io.UnsupportedEncodingException;
      15 import java.net.InetAddress;
      16 import java.net.MalformedURLException;
      17 import java.net.URI;
      18 import java.net.URISyntaxException;
      19 import java.net.URL;
      20 import java.net.UnknownHostException;
      21 import java.util.Date;
      22 import java.util.List;
      23 import java.util.Map;
      24 
      25 import com.aliyun.oss.*;
      26 import com.aliyun.oss.common.auth.Credentials;
      27 import com.aliyun.oss.common.auth.CredentialsProvider;
      28 import com.aliyun.oss.common.auth.DefaultCredentialProvider;
      29 import com.aliyun.oss.common.auth.ServiceSignature;
      30 import com.aliyun.oss.common.comm.*;
      31 import com.aliyun.oss.common.utils.BinaryUtil;
      32 import com.aliyun.oss.common.utils.DateUtil;
      33 import com.aliyun.oss.internal.*;
      34 import com.aliyun.oss.model.*;
      35 import com.aliyun.oss.model.SetBucketCORSRequest.CORSRule;
      36 
      37 
      38 public class OSSClient implements OSS {
      39 
      40     private CredentialsProvider credsProvider;
      41 
      42     private URI endpoint;
      43 
      44     private ServiceClient serviceClient;
      45 
      46     private OSSBucketOperation bucketOperation;
      47     private OSSObjectOperation objectOperation;
      48     private OSSMultipartOperation multipartOperation;
      49     private CORSOperation corsOperation;
      50     private OSSUploadOperation uploadOperation;
      51     private OSSDownloadOperation downloadOperation;
      52     private LiveChannelOperation liveChannelOperation;
      53 
      54 
      55     @Deprecated
      56     public OSSClient(String accessKeyId, String secretAccessKey) {
      57         this(DEFAULT_OSS_ENDPOINT, new DefaultCredentialProvider(accessKeyId, secretAccessKey));
      58     }
      59 
      60 
      61     @Deprecated
      62     public OSSClient(String endpoint, String accessKeyId, String secretAccessKey) {
      63         this(endpoint, new DefaultCredentialProvider(accessKeyId, secretAccessKey), null);
      64     }
      65 
      66 
      67     @Deprecated
      68     public OSSClient(String endpoint, String accessKeyId, String secretAccessKey, String securityToken) {
      69         this(endpoint, new DefaultCredentialProvider(accessKeyId, secretAccessKey, securityToken), null);
      70     }
      71 
      72     @Deprecated
      73     public OSSClient(String endpoint, String accessKeyId, String secretAccessKey, ClientConfiguration config) {
      74         this(endpoint, new DefaultCredentialProvider(accessKeyId, secretAccessKey), config);
      75     }
      76 
      77     @Deprecated
      78     public OSSClient(String endpoint, String accessKeyId, String secretAccessKey, String securityToken,
      79                      ClientConfiguration config) {
      80         this(endpoint, new DefaultCredentialProvider(accessKeyId, secretAccessKey, securityToken), config);
      81     }
      82 
      83     @Deprecated
      84     public OSSClient(String endpoint, CredentialsProvider credsProvider) {
      85         this(endpoint, credsProvider, null);
      86     }
      87 
      88     public OSSClient(String endpoint, CredentialsProvider credsProvider, ClientConfiguration config) {
      89         this.credsProvider = credsProvider;
      90         config = config == null ? new ClientConfiguration() : config;
      91         if (config.isRequestTimeoutEnabled()) {
      92             this.serviceClient = new TimeoutServiceClient(config);
      93         } else {
      94             this.serviceClient = new DefaultServiceClient(config);
      95         }
      96         initOperations();
      97         setEndpoint(endpoint);
      98     }
      99 
     100 
     101     public synchronized URI getEndpoint() {
     102         return URI.create(endpoint.toString());
     103     }
     104 
     105 
     106     public synchronized void setEndpoint(String endpoint) {
     107         URI uri = toURI(endpoint);
     108         this.endpoint = uri;
     109 
     110         if (isIpOrLocalhost(uri)) {
     111             serviceClient.getClientConfiguration().setSLDEnabled(true);
     112         }
     113 
     114         this.bucketOperation.setEndpoint(uri);
     115         this.objectOperation.setEndpoint(uri);
     116         this.multipartOperation.setEndpoint(uri);
     117         this.corsOperation.setEndpoint(uri);
     118         this.liveChannelOperation.setEndpoint(uri);
     119     }
     120 
     121     private boolean isIpOrLocalhost(URI uri) {
     122         if (uri.getHost().equals("localhost")) {
     123             return true;
     124         }
     125 
     126         InetAddress ia;
     127         try {
     128             ia = InetAddress.getByName(uri.getHost());
     129         } catch (UnknownHostException e) {
     130             return false;
     131         }
     132 
     133         if (uri.getHost().equals(ia.getHostAddress())) {
     134             return true;
     135         }
     136 
     137         return false;
     138     }
     139 
     140     private URI toURI(String endpoint) throws IllegalArgumentException {
     141         if (!endpoint.contains("://")) {
     142             ClientConfiguration conf = this.serviceClient.getClientConfiguration();
     143             endpoint = conf.getProtocol().toString() + "://" + endpoint;
     144         }
     145 
     146         try {
     147             return new URI(endpoint);
     148         } catch (URISyntaxException e) {
     149             throw new IllegalArgumentException(e);
     150         }
     151     }
     152 
     153     private void initOperations() {
     154         this.bucketOperation = new OSSBucketOperation(this.serviceClient, this.credsProvider);
     155         this.objectOperation = new OSSObjectOperation(this.serviceClient, this.credsProvider);
     156         this.multipartOperation = new OSSMultipartOperation(this.serviceClient, this.credsProvider);
     157         this.corsOperation = new CORSOperation(this.serviceClient, this.credsProvider);
     158         this.uploadOperation = new OSSUploadOperation(this.multipartOperation);
     159         this.downloadOperation = new OSSDownloadOperation(objectOperation);
     160         this.liveChannelOperation = new LiveChannelOperation(this.serviceClient, this.credsProvider);
     161     }
     162 
     163     @Override
     164     public void switchCredentials(Credentials creds) {
     165         if (creds == null) {
     166             throw new IllegalArgumentException("creds should not be null.");
     167         }
     168 
     169         this.credsProvider.setCredentials(creds);
     170     }
     171 
     172     @Override
     173     public void switchSignatureVersion(SignVersion signatureVersion) {
     174         if (signatureVersion == null) {
     175             throw new IllegalArgumentException("signatureVersion should not be null.");
     176         }
     177 
     178         this.getClientConfiguration().setSignatureVersion(signatureVersion);
     179     }
     180 
     181     public CredentialsProvider getCredentialsProvider() {
     182         return this.credsProvider;
     183     }
     184 
     185     public ClientConfiguration getClientConfiguration() {
     186         return serviceClient.getClientConfiguration();
     187     }
     188 
     189     @Override
     190     public Bucket createBucket(String bucketName) throws OSSException, ClientException {
     191         return this.createBucket(new CreateBucketRequest(bucketName));
     192     }
     193 
     194     @Override
     195     public Bucket createBucket(CreateBucketRequest createBucketRequest) throws OSSException, ClientException {
     196         return bucketOperation.createBucket(createBucketRequest);
     197     }
     198 
     199     @Override
     200     public void deleteBucket(String bucketName) throws OSSException, ClientException {
     201         this.deleteBucket(new GenericRequest(bucketName));
     202     }
     203 
     204     @Override
     205     public void deleteBucket(GenericRequest genericRequest) throws OSSException, ClientException {
     206         bucketOperation.deleteBucket(genericRequest);
     207     }
     208 
     209     @Override
     210     public List<Bucket> listBuckets() throws OSSException, ClientException {
     211         return bucketOperation.listBuckets();
     212     }
     213 
     214     @Override
     215     public BucketList listBuckets(ListBucketsRequest listBucketsRequest) throws OSSException, ClientException {
     216         return bucketOperation.listBuckets(listBucketsRequest);
     217     }
     218 
     219     @Override
     220     public BucketList listBuckets(String prefix, String marker, Integer maxKeys) throws OSSException, ClientException {
     221         return bucketOperation.listBuckets(new ListBucketsRequest(prefix, marker, maxKeys));
     222     }
     223 
     224     @Override
     225     public void setBucketAcl(String bucketName, CannedAccessControlList cannedACL)
     226             throws OSSException, ClientException {
     227         this.setBucketAcl(new SetBucketAclRequest(bucketName, cannedACL));
     228     }
     229 
     230     @Override
     231     public void setBucketAcl(SetBucketAclRequest setBucketAclRequest) throws OSSException, ClientException {
     232         bucketOperation.setBucketAcl(setBucketAclRequest);
     233     }
     234 
     235     @Override
     236     public AccessControlList getBucketAcl(String bucketName) throws OSSException, ClientException {
     237         return this.getBucketAcl(new GenericRequest(bucketName));
     238     }
     239 
     240     @Override
     241     public AccessControlList getBucketAcl(GenericRequest genericRequest) throws OSSException, ClientException {
     242         return bucketOperation.getBucketAcl(genericRequest);
     243     }
     244 
     245     @Override
     246     public BucketMetadata getBucketMetadata(String bucketName) throws OSSException, ClientException {
     247         return this.getBucketMetadata(new GenericRequest(bucketName));
     248     }
     249 
     250     @Override
     251     public BucketMetadata getBucketMetadata(GenericRequest genericRequest) throws OSSException, ClientException {
     252         return bucketOperation.getBucketMetadata(genericRequest);
     253     }
     254 
     255     @Override
     256     public void setBucketReferer(String bucketName, BucketReferer referer) throws OSSException, ClientException {
     257         this.setBucketReferer(new SetBucketRefererRequest(bucketName, referer));
     258     }
     259 
     260     @Override
     261     public void setBucketReferer(SetBucketRefererRequest setBucketRefererRequest) throws OSSException, ClientException {
     262         bucketOperation.setBucketReferer(setBucketRefererRequest);
     263     }
     264 
     265     @Override
     266     public BucketReferer getBucketReferer(String bucketName) throws OSSException, ClientException {
     267         return this.getBucketReferer(new GenericRequest(bucketName));
     268     }
     269 
     270     @Override
     271     public BucketReferer getBucketReferer(GenericRequest genericRequest) throws OSSException, ClientException {
     272         return bucketOperation.getBucketReferer(genericRequest);
     273     }
     274 
     275     @Override
     276     public String getBucketLocation(String bucketName) throws OSSException, ClientException {
     277         return this.getBucketLocation(new GenericRequest(bucketName));
     278     }
     279 
     280     @Override
     281     public String getBucketLocation(GenericRequest genericRequest) throws OSSException, ClientException {
     282         return bucketOperation.getBucketLocation(genericRequest);
     283     }
     284 
     285     @Override
     286     public boolean doesBucketExist(String bucketName) throws OSSException, ClientException {
     287         return this.doesBucketExist(new GenericRequest(bucketName));
     288     }
     289 
     290     @Override
     291     public boolean doesBucketExist(GenericRequest genericRequest) throws OSSException, ClientException {
     292         return bucketOperation.doesBucketExists(genericRequest);
     293     }
     294 
     295 
     296     @Deprecated
     297     public boolean isBucketExist(String bucketName) throws OSSException, ClientException {
     298         return this.doesBucketExist(bucketName);
     299     }
     300 
     301     @Override
     302     public ObjectListing listObjects(String bucketName) throws OSSException, ClientException {
     303         return listObjects(new ListObjectsRequest(bucketName, null, null, null, null));
     304     }
     305 
     306     @Override
     307     public ObjectListing listObjects(String bucketName, String prefix) throws OSSException, ClientException {
     308         return listObjects(new ListObjectsRequest(bucketName, prefix, null, null, null));
     309     }
     310 
     311     @Override
     312     public ObjectListing listObjects(ListObjectsRequest listObjectsRequest) throws OSSException, ClientException {
     313         return bucketOperation.listObjects(listObjectsRequest);
     314     }
     315 
     316     @Override
     317     public VersionListing listVersions(String bucketName, String prefix) throws OSSException, ClientException {
     318         return listVersions(new ListVersionsRequest(bucketName, prefix, null, null, null, null));
     319     }
     320 
     321     @Override
     322     public VersionListing listVersions(String bucketName, String prefix, String keyMarker, String versionIdMarker,
     323                                        String delimiter, Integer maxResults) throws OSSException, ClientException {
     324         ListVersionsRequest request = new ListVersionsRequest()
     325                 .withBucketName(bucketName)
     326                 .withPrefix(prefix)
     327                 .withDelimiter(delimiter)
     328                 .withKeyMarker(keyMarker)
     329                 .withVersionIdMarker(versionIdMarker)
     330                 .withMaxResults(maxResults);
     331         return listVersions(request);
     332     }
     333 
     334     @Override
     335     public VersionListing listVersions(ListVersionsRequest listVersionsRequest) throws OSSException, ClientException {
     336         return bucketOperation.listVersions(listVersionsRequest);
     337     }
     338 
     339     @Override
     340     public PutObjectResult putObject(String bucketName, String key, InputStream input)
     341             throws OSSException, ClientException {
     342         return putObject(bucketName, key, input, null);
     343     }
     344 
     345     @Override
     346     public PutObjectResult putObject(String bucketName, String key, InputStream input, ObjectMetadata metadata)
     347             throws OSSException, ClientException {
     348         return putObject(new PutObjectRequest(bucketName, key, input, metadata));
     349     }
     350 
     351     @Override
     352     public PutObjectResult putObject(String bucketName, String key, File file, ObjectMetadata metadata)
     353             throws OSSException, ClientException {
     354         return putObject(new PutObjectRequest(bucketName, key, file, metadata));
     355     }
     356 
     357     @Override
     358     public PutObjectResult putObject(String bucketName, String key, File file) throws OSSException, ClientException {
     359         return putObject(bucketName, key, file, null);
     360     }
     361 
     362     @Override
     363     public PutObjectResult putObject(PutObjectRequest putObjectRequest) throws OSSException, ClientException {
     364         return objectOperation.putObject(putObjectRequest);
     365     }
     366 
     367     @Override
     368     public PutObjectResult putObject(URL signedUrl, String filePath, Map<String, String> requestHeaders)
     369             throws OSSException, ClientException {
     370         return putObject(signedUrl, filePath, requestHeaders, false);
     371     }
     372 
     373     @Override
     374     public PutObjectResult putObject(URL signedUrl, String filePath, Map<String, String> requestHeaders,
     375                                      boolean useChunkEncoding) throws OSSException, ClientException {
     376 
     377         FileInputStream requestContent = null;
     378         try {
     379             File toUpload = new File(filePath);
     380             if (!checkFile(toUpload)) {
     381                 throw new IllegalArgumentException("Illegal file path: " + filePath);
     382             }
     383             long fileSize = toUpload.length();
     384             requestContent = new FileInputStream(toUpload);
     385 
     386             return putObject(signedUrl, requestContent, fileSize, requestHeaders, useChunkEncoding);
     387         } catch (FileNotFoundException e) {
     388             throw new ClientException(e);
     389         } finally {
     390             if (requestContent != null) {
     391                 try {
     392                     requestContent.close();
     393                 } catch (IOException e) {
     394                 }
     395             }
     396         }
     397     }
     398 
     399     @Override
     400     public PutObjectResult putObject(URL signedUrl, InputStream requestContent, long contentLength,
     401                                      Map<String, String> requestHeaders) throws OSSException, ClientException {
     402         return putObject(signedUrl, requestContent, contentLength, requestHeaders, false);
     403     }
     404 
     405     @Override
     406     public PutObjectResult putObject(URL signedUrl, InputStream requestContent, long contentLength,
     407                                      Map<String, String> requestHeaders, boolean useChunkEncoding) throws OSSException, ClientException {
     408         return objectOperation.putObject(signedUrl, requestContent, contentLength, requestHeaders, useChunkEncoding);
     409     }
     410 
     411     @Override
     412     public CopyObjectResult copyObject(String sourceBucketName, String sourceKey, String destinationBucketName,
     413                                        String destinationKey) throws OSSException, ClientException {
     414         return copyObject(new CopyObjectRequest(sourceBucketName, sourceKey, destinationBucketName, destinationKey));
     415     }
     416 
     417     @Override
     418     public CopyObjectResult copyObject(CopyObjectRequest copyObjectRequest) throws OSSException, ClientException {
     419         return objectOperation.copyObject(copyObjectRequest);
     420     }
     421 
     422     @Override
     423     public OSSObject getObject(String bucketName, String key) throws OSSException, ClientException {
     424         return this.getObject(new GetObjectRequest(bucketName, key));
     425     }
     426 
     427     @Override
     428     public ObjectMetadata getObject(GetObjectRequest getObjectRequest, File file) throws OSSException, ClientException {
     429         return objectOperation.getObject(getObjectRequest, file);
     430     }
     431 
     432     @Override
     433     public OSSObject getObject(GetObjectRequest getObjectRequest) throws OSSException, ClientException {
     434         return objectOperation.getObject(getObjectRequest);
     435     }
     436 
     437     @Override
     438     public OSSObject getObject(URL signedUrl, Map<String, String> requestHeaders) throws OSSException, ClientException {
     439         GetObjectRequest getObjectRequest = new GetObjectRequest(signedUrl, requestHeaders);
     440         return objectOperation.getObject(getObjectRequest);
     441     }
     442 
     443     @Override
     444     public OSSObject selectObject(SelectObjectRequest selectObjectRequest) throws OSSException, ClientException {
     445         return objectOperation.selectObject(selectObjectRequest);
     446     }
     447 
     448     @Override
     449     public SimplifiedObjectMeta getSimplifiedObjectMeta(String bucketName, String key)
     450             throws OSSException, ClientException {
     451         return this.getSimplifiedObjectMeta(new GenericRequest(bucketName, key));
     452     }
     453 
     454     @Override
     455     public SimplifiedObjectMeta getSimplifiedObjectMeta(GenericRequest genericRequest)
     456             throws OSSException, ClientException {
     457         return this.objectOperation.getSimplifiedObjectMeta(genericRequest);
     458     }
     459 
     460     @Override
     461     public ObjectMetadata getObjectMetadata(String bucketName, String key) throws OSSException, ClientException {
     462         return this.getObjectMetadata(new GenericRequest(bucketName, key));
     463     }
     464 
     465     @Override
     466     public SelectObjectMetadata createSelectObjectMetadata(CreateSelectObjectMetadataRequest createSelectObjectMetadataRequest) throws OSSException, ClientException {
     467         return objectOperation.createSelectObjectMetadata(createSelectObjectMetadataRequest);
     468     }
     469 
     470     @Override
     471     public ObjectMetadata getObjectMetadata(GenericRequest genericRequest) throws OSSException, ClientException {
     472         return objectOperation.getObjectMetadata(genericRequest);
     473     }
     474 
     475     @Override
     476     public ObjectMetadata headObject(String bucketName, String key) throws OSSException, ClientException {
     477         return this.headObject(new HeadObjectRequest(bucketName, key));
     478     }
     479 
     480     @Override
     481     public ObjectMetadata headObject(HeadObjectRequest headObjectRequest) throws OSSException, ClientException {
     482         return objectOperation.headObject(headObjectRequest);
     483     }
     484 
     485     @Override
     486     public AppendObjectResult appendObject(AppendObjectRequest appendObjectRequest)
     487             throws OSSException, ClientException {
     488         return objectOperation.appendObject(appendObjectRequest);
     489     }
     490 
     491     @Override
     492     public void deleteObject(String bucketName, String key) throws OSSException, ClientException {
     493         this.deleteObject(new GenericRequest(bucketName, key));
     494     }
     495 
     496     @Override
     497     public void deleteObject(GenericRequest genericRequest) throws OSSException, ClientException {
     498         objectOperation.deleteObject(genericRequest);
     499     }
     500 
     501     @Override
     502     public void deleteVersion(String bucketName, String key, String versionId) throws OSSException, ClientException {
     503         deleteVersion(new DeleteVersionRequest(bucketName, key, versionId));
     504     }
     505 
     506     @Override
     507     public void deleteVersion(DeleteVersionRequest deleteVersionRequest) throws OSSException, ClientException {
     508         objectOperation.deleteVersion(deleteVersionRequest);
     509     }
     510 
     511     @Override
     512     public DeleteObjectsResult deleteObjects(DeleteObjectsRequest deleteObjectsRequest)
     513             throws OSSException, ClientException {
     514         return objectOperation.deleteObjects(deleteObjectsRequest);
     515     }
     516 
     517     @Override
     518     public DeleteVersionsResult deleteVersions(DeleteVersionsRequest deleteVersionsRequest)
     519             throws OSSException, ClientException {
     520         return objectOperation.deleteVersions(deleteVersionsRequest);
     521     }
     522 
     523     @Override
     524     public boolean doesObjectExist(String bucketName, String key) throws OSSException, ClientException {
     525         return doesObjectExist(new GenericRequest(bucketName, key));
     526     }
     527 
     528     @Override
     529     public boolean doesObjectExist(String bucketName, String key, boolean isOnlyInOSS) {
     530         if (isOnlyInOSS) {
     531             return doesObjectExist(bucketName, key);
     532         } else {
     533             return objectOperation.doesObjectExistWithRedirect(new GenericRequest(bucketName, key));
     534         }
     535     }
     536 
     537     @Deprecated
     538     @Override
     539     public boolean doesObjectExist(HeadObjectRequest headObjectRequest) throws OSSException, ClientException {
     540         return doesObjectExist(new GenericRequest(headObjectRequest.getBucketName(), headObjectRequest.getKey()));
     541     }
     542 
     543     @Override
     544     public boolean doesObjectExist(GenericRequest genericRequest) throws OSSException, ClientException {
     545         return objectOperation.doesObjectExist(genericRequest);
     546     }
     547 
     548     @Override
     549     public boolean doesObjectExist(GenericRequest genericRequest, boolean isOnlyInOSS) throws OSSException, ClientException {
     550         if (isOnlyInOSS) {
     551             return objectOperation.doesObjectExist(genericRequest);
     552         } else {
     553             return objectOperation.doesObjectExistWithRedirect(genericRequest);
     554         }
     555     }
     556 
     557     @Override
     558     public void setObjectAcl(String bucketName, String key, CannedAccessControlList cannedACL)
     559             throws OSSException, ClientException {
     560         this.setObjectAcl(new SetObjectAclRequest(bucketName, key, cannedACL));
     561     }
     562 
     563     @Override
     564     public void setObjectAcl(SetObjectAclRequest setObjectAclRequest) throws OSSException, ClientException {
     565         objectOperation.setObjectAcl(setObjectAclRequest);
     566     }
     567 
     568     @Override
     569     public ObjectAcl getObjectAcl(String bucketName, String key) throws OSSException, ClientException {
     570         return this.getObjectAcl(new GenericRequest(bucketName, key));
     571     }
     572 
     573     @Override
     574     public ObjectAcl getObjectAcl(GenericRequest genericRequest) throws OSSException, ClientException {
     575         return objectOperation.getObjectAcl(genericRequest);
     576     }
     577 
     578     @Override
     579     public RestoreObjectResult restoreObject(String bucketName, String key) throws OSSException, ClientException {
     580         return this.restoreObject(new GenericRequest(bucketName, key));
     581     }
     582 
     583     @Override
     584     public RestoreObjectResult restoreObject(GenericRequest genericRequest) throws OSSException, ClientException {
     585         return objectOperation.restoreObject(genericRequest);
     586     }
     587 
     588     @Override
     589     public void setObjectTagging(String bucketName, String key, Map<String, String> tags)
     590             throws OSSException, ClientException {
     591         this.setObjectTagging(new SetObjectTaggingRequest(bucketName, key, tags));
     592     }
     593 
     594     @Override
     595     public void setObjectTagging(String bucketName, String key, TagSet tagSet) throws OSSException, ClientException {
     596         this.setObjectTagging(new SetObjectTaggingRequest(bucketName, key, tagSet));
     597     }
     598 
     599     @Override
     600     public void setObjectTagging(SetObjectTaggingRequest setObjectTaggingRequest) throws OSSException, ClientException {
     601         objectOperation.setObjectTagging(setObjectTaggingRequest);
     602     }
     603 
     604     @Override
     605     public TagSet getObjectTagging(String bucketName, String key) throws OSSException, ClientException {
     606         return this.getObjectTagging(new GenericRequest(bucketName, key));
     607     }
     608 
     609     @Override
     610     public TagSet getObjectTagging(GenericRequest genericRequest) throws OSSException, ClientException {
     611         return objectOperation.getObjectTagging(genericRequest);
     612     }
     613 
     614     @Override
     615     public void deleteObjectTagging(String bucketName, String key) throws OSSException, ClientException {
     616         this.deleteObjectTagging(new GenericRequest(bucketName, key));
     617     }
     618 
     619     @Override
     620     public void deleteObjectTagging(GenericRequest genericRequest) throws OSSException, ClientException {
     621         objectOperation.deleteObjectTagging(genericRequest);
     622     }
     623 
     624     @Override
     625     public URL generatePresignedUrl(String bucketName, String key, Date expiration) throws ClientException {
     626         return generatePresignedUrl(bucketName, key, expiration, HttpMethod.GET);
     627     }
     628 
     629     @Override
     630     public URL generatePresignedUrl(String bucketName, String key, Date expiration, HttpMethod method)
     631             throws ClientException {
     632         GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, key);
     633         request.setExpiration(expiration);
     634         request.setMethod(method);
     635 
     636         return generatePresignedUrl(request);
     637     }
     638 
     639     @Override
     640     public URL generatePresignedUrl(GeneratePresignedUrlRequest request) throws ClientException {
     641 
     642         assertParameterNotNull(request, "request");
     643 
     644         if (request.getBucketName() == null) {
     645             throw new IllegalArgumentException(OSS_RESOURCE_MANAGER.getString("MustSetBucketName"));
     646         }
     647         ensureBucketNameValid(request.getBucketName());
     648 
     649         if (request.getExpiration() == null) {
     650             throw new IllegalArgumentException(OSS_RESOURCE_MANAGER.getString("MustSetExpiration"));
     651         }
     652         String url;
     653 
     654         if (serviceClient.getClientConfiguration().getSignatureVersion() != null && serviceClient.getClientConfiguration().getSignatureVersion() == SignVersion.V2) {
     655             url = SignV2Utils.buildSignedURL(request, credsProvider.getCredentials(), serviceClient.getClientConfiguration(), endpoint);
     656         } else {
     657             url = SignUtils.buildSignedURL(request, credsProvider.getCredentials(), serviceClient.getClientConfiguration(), endpoint);
     658         }
     659 
     660         try {
     661             return new URL(url);
     662         } catch (MalformedURLException e) {
     663             throw new ClientException(e);
     664         }
     665     }
     666 
     667     @Override
     668     public void abortMultipartUpload(AbortMultipartUploadRequest request) throws OSSException, ClientException {
     669         multipartOperation.abortMultipartUpload(request);
     670     }
     671 
     672     @Override
     673     public CompleteMultipartUploadResult completeMultipartUpload(CompleteMultipartUploadRequest request)
     674             throws OSSException, ClientException {
     675         return multipartOperation.completeMultipartUpload(request);
     676     }
     677 
     678     @Override
     679     public InitiateMultipartUploadResult initiateMultipartUpload(InitiateMultipartUploadRequest request)
     680             throws OSSException, ClientException {
     681         return multipartOperation.initiateMultipartUpload(request);
     682     }
     683 
     684     @Override
     685     public MultipartUploadListing listMultipartUploads(ListMultipartUploadsRequest request)
     686             throws OSSException, ClientException {
     687         return multipartOperation.listMultipartUploads(request);
     688     }
     689 
     690     @Override
     691     public PartListing listParts(ListPartsRequest request) throws OSSException, ClientException {
     692         return multipartOperation.listParts(request);
     693     }
     694 
     695     @Override
     696     public UploadPartResult uploadPart(UploadPartRequest request) throws OSSException, ClientException {
     697         return multipartOperation.uploadPart(request);
     698     }
     699 
     700     @Override
     701     public UploadPartCopyResult uploadPartCopy(UploadPartCopyRequest request) throws OSSException, ClientException {
     702         return multipartOperation.uploadPartCopy(request);
     703     }
     704 
     705     @Override
     706     public void setBucketCORS(SetBucketCORSRequest request) throws OSSException, ClientException {
     707         corsOperation.setBucketCORS(request);
     708     }
     709 
     710     @Override
     711     public List<CORSRule> getBucketCORSRules(String bucketName) throws OSSException, ClientException {
     712         return this.getBucketCORSRules(new GenericRequest(bucketName));
     713     }
     714 
     715     @Override
     716     public List<CORSRule> getBucketCORSRules(GenericRequest genericRequest) throws OSSException, ClientException {
     717         return corsOperation.getBucketCORSRules(genericRequest);
     718     }
     719 
     720     @Override
     721     public void deleteBucketCORSRules(String bucketName) throws OSSException, ClientException {
     722         this.deleteBucketCORSRules(new GenericRequest(bucketName));
     723     }
     724 
     725     @Override
     726     public void deleteBucketCORSRules(GenericRequest genericRequest) throws OSSException, ClientException {
     727         corsOperation.deleteBucketCORS(genericRequest);
     728     }
     729 
     730     @Override
     731     public ResponseMessage optionsObject(OptionsRequest request) throws OSSException, ClientException {
     732         return corsOperation.optionsObject(request);
     733     }
     734 
     735     @Override
     736     public void setBucketLogging(SetBucketLoggingRequest request) throws OSSException, ClientException {
     737         bucketOperation.setBucketLogging(request);
     738     }
     739 
     740     @Override
     741     public BucketLoggingResult getBucketLogging(String bucketName) throws OSSException, ClientException {
     742         return this.getBucketLogging(new GenericRequest(bucketName));
     743     }
     744 
     745     @Override
     746     public BucketLoggingResult getBucketLogging(GenericRequest genericRequest) throws OSSException, ClientException {
     747         return bucketOperation.getBucketLogging(genericRequest);
     748     }
     749 
     750     @Override
     751     public void deleteBucketLogging(String bucketName) throws OSSException, ClientException {
     752         this.deleteBucketLogging(new GenericRequest(bucketName));
     753     }
     754 
     755     @Override
     756     public void deleteBucketLogging(GenericRequest genericRequest) throws OSSException, ClientException {
     757         bucketOperation.deleteBucketLogging(genericRequest);
     758     }
     759 
     760     @Override
     761     public void putBucketImage(PutBucketImageRequest request) throws OSSException, ClientException {
     762         bucketOperation.putBucketImage(request);
     763     }
     764 
     765     @Override
     766     public GetBucketImageResult getBucketImage(String bucketName) throws OSSException, ClientException {
     767         return bucketOperation.getBucketImage(bucketName, new GenericRequest());
     768     }
     769 
     770     @Override
     771     public GetBucketImageResult getBucketImage(String bucketName, GenericRequest genericRequest)
     772             throws OSSException, ClientException {
     773         return bucketOperation.getBucketImage(bucketName, genericRequest);
     774     }
     775 
     776     @Override
     777     public void deleteBucketImage(String bucketName) throws OSSException, ClientException {
     778         bucketOperation.deleteBucketImage(bucketName, new GenericRequest());
     779     }
     780 
     781     @Override
     782     public void deleteBucketImage(String bucketName, GenericRequest genericRequest)
     783             throws OSSException, ClientException {
     784         bucketOperation.deleteBucketImage(bucketName, genericRequest);
     785     }
     786 
     787     @Override
     788     public void putImageStyle(PutImageStyleRequest putImageStyleRequest) throws OSSException, ClientException {
     789         bucketOperation.putImageStyle(putImageStyleRequest);
     790     }
     791 
     792     @Override
     793     public void deleteImageStyle(String bucketName, String styleName) throws OSSException, ClientException {
     794         bucketOperation.deleteImageStyle(bucketName, styleName, new GenericRequest());
     795     }
     796 
     797     @Override
     798     public void deleteImageStyle(String bucketName, String styleName, GenericRequest genericRequest)
     799             throws OSSException, ClientException {
     800         bucketOperation.deleteImageStyle(bucketName, styleName, genericRequest);
     801     }
     802 
     803     @Override
     804     public GetImageStyleResult getImageStyle(String bucketName, String styleName) throws OSSException, ClientException {
     805         return bucketOperation.getImageStyle(bucketName, styleName, new GenericRequest());
     806     }
     807 
     808     @Override
     809     public GetImageStyleResult getImageStyle(String bucketName, String styleName, GenericRequest genericRequest)
     810             throws OSSException, ClientException {
     811         return bucketOperation.getImageStyle(bucketName, styleName, genericRequest);
     812     }
     813 
     814     @Override
     815     public List<Style> listImageStyle(String bucketName) throws OSSException, ClientException {
     816         return bucketOperation.listImageStyle(bucketName, new GenericRequest());
     817     }
     818 
     819     @Override
     820     public List<Style> listImageStyle(String bucketName, GenericRequest genericRequest)
     821             throws OSSException, ClientException {
     822         return bucketOperation.listImageStyle(bucketName, genericRequest);
     823     }
     824 
     825     @Override
     826     public void setBucketProcess(SetBucketProcessRequest setBucketProcessRequest) throws OSSException, ClientException {
     827         bucketOperation.setBucketProcess(setBucketProcessRequest);
     828     }
     829 
     830     @Override
     831     public BucketProcess getBucketProcess(String bucketName) throws OSSException, ClientException {
     832         return this.getBucketProcess(new GenericRequest(bucketName));
     833     }
     834 
     835     @Override
     836     public BucketProcess getBucketProcess(GenericRequest genericRequest) throws OSSException, ClientException {
     837         return bucketOperation.getBucketProcess(genericRequest);
     838     }
     839 
     840     @Override
     841     public void setBucketWebsite(SetBucketWebsiteRequest setBucketWebSiteRequest) throws OSSException, ClientException {
     842         bucketOperation.setBucketWebsite(setBucketWebSiteRequest);
     843     }
     844 
     845     @Override
     846     public BucketWebsiteResult getBucketWebsite(String bucketName) throws OSSException, ClientException {
     847         return this.getBucketWebsite(new GenericRequest(bucketName));
     848     }
     849 
     850     @Override
     851     public BucketWebsiteResult getBucketWebsite(GenericRequest genericRequest) throws OSSException, ClientException {
     852         return bucketOperation.getBucketWebsite(genericRequest);
     853     }
     854 
     855     @Override
     856     public void deleteBucketWebsite(String bucketName) throws OSSException, ClientException {
     857         this.deleteBucketWebsite(new GenericRequest(bucketName));
     858     }
     859 
     860     @Override
     861     public void deleteBucketWebsite(GenericRequest genericRequest) throws OSSException, ClientException {
     862         bucketOperation.deleteBucketWebsite(genericRequest);
     863     }
     864 
     865     @Override
     866     public BucketVersioningConfiguration getBucketVersioning(String bucketName) throws OSSException, ClientException {
     867         return getBucketVersioning(new GenericRequest(bucketName));
     868     }
     869 
     870     @Override
     871     public BucketVersioningConfiguration getBucketVersioning(GenericRequest genericRequest)
     872             throws OSSException, ClientException {
     873         return bucketOperation.getBucketVersioning(genericRequest);
     874     }
     875 
     876     @Override
     877     public void setBucketVersioning(SetBucketVersioningRequest setBucketVersioningRequest)
     878             throws OSSException, ClientException {
     879         bucketOperation.setBucketVersioning(setBucketVersioningRequest);
     880     }
     881 
     882     @Override
     883     public String generatePostPolicy(Date expiration, PolicyConditions conds) {
     884         String formatedExpiration = DateUtil.formatIso8601Date(expiration);
     885         String jsonizedExpiration = String.format(""expiration":"%s"", formatedExpiration);
     886         String jsonizedConds = conds.jsonize();
     887 
     888         StringBuilder postPolicy = new StringBuilder();
     889         postPolicy.append(String.format("{%s,%s}", jsonizedExpiration, jsonizedConds));
     890 
     891         return postPolicy.toString();
     892     }
     893 
     894     @Override
     895     public String calculatePostSignature(String postPolicy) throws ClientException {
     896         try {
     897             byte[] binaryData = postPolicy.getBytes(DEFAULT_CHARSET_NAME);
     898             String encPolicy = BinaryUtil.toBase64String(binaryData);
     899             return ServiceSignature.create().computeSignature(credsProvider.getCredentials().getSecretAccessKey(),
     900                     encPolicy);
     901         } catch (UnsupportedEncodingException ex) {
     902             throw new ClientException("Unsupported charset: " + ex.getMessage());
     903         }
     904     }
     905 
     906     @Override
     907     public void setBucketLifecycle(SetBucketLifecycleRequest setBucketLifecycleRequest)
     908             throws OSSException, ClientException {
     909         bucketOperation.setBucketLifecycle(setBucketLifecycleRequest);
     910     }
     911 
     912     @Override
     913     public List<LifecycleRule> getBucketLifecycle(String bucketName) throws OSSException, ClientException {
     914         return this.getBucketLifecycle(new GenericRequest(bucketName));
     915     }
     916 
     917     @Override
     918     public List<LifecycleRule> getBucketLifecycle(GenericRequest genericRequest) throws OSSException, ClientException {
     919         return bucketOperation.getBucketLifecycle(genericRequest);
     920     }
     921 
     922     @Override
     923     public void deleteBucketLifecycle(String bucketName) throws OSSException, ClientException {
     924         this.deleteBucketLifecycle(new GenericRequest(bucketName));
     925     }
     926 
     927     @Override
     928     public void deleteBucketLifecycle(GenericRequest genericRequest) throws OSSException, ClientException {
     929         bucketOperation.deleteBucketLifecycle(genericRequest);
     930     }
     931 
     932     @Override
     933     public void setBucketTagging(String bucketName, Map<String, String> tags) throws OSSException, ClientException {
     934         this.setBucketTagging(new SetBucketTaggingRequest(bucketName, tags));
     935     }
     936 
     937     @Override
     938     public void setBucketTagging(String bucketName, TagSet tagSet) throws OSSException, ClientException {
     939         this.setBucketTagging(new SetBucketTaggingRequest(bucketName, tagSet));
     940     }
     941 
     942     @Override
     943     public void setBucketTagging(SetBucketTaggingRequest setBucketTaggingRequest) throws OSSException, ClientException {
     944         this.bucketOperation.setBucketTagging(setBucketTaggingRequest);
     945     }
     946 
     947     @Override
     948     public TagSet getBucketTagging(String bucketName) throws OSSException, ClientException {
     949         return this.getBucketTagging(new GenericRequest(bucketName));
     950     }
     951 
     952     @Override
     953     public TagSet getBucketTagging(GenericRequest genericRequest) throws OSSException, ClientException {
     954         return this.bucketOperation.getBucketTagging(genericRequest);
     955     }
     956 
     957     @Override
     958     public void deleteBucketTagging(String bucketName) throws OSSException, ClientException {
     959         this.deleteBucketTagging(new GenericRequest(bucketName));
     960     }
     961 
     962     @Override
     963     public void deleteBucketTagging(GenericRequest genericRequest) throws OSSException, ClientException {
     964         this.bucketOperation.deleteBucketTagging(genericRequest);
     965     }
     966 
     967     @Override
     968     public void addBucketReplication(AddBucketReplicationRequest addBucketReplicationRequest)
     969             throws OSSException, ClientException {
     970         this.bucketOperation.addBucketReplication(addBucketReplicationRequest);
     971     }
     972 
     973     @Override
     974     public List<ReplicationRule> getBucketReplication(String bucketName) throws OSSException, ClientException {
     975         return this.getBucketReplication(new GenericRequest(bucketName));
     976     }
     977 
     978     @Override
     979     public List<ReplicationRule> getBucketReplication(GenericRequest genericRequest)
     980             throws OSSException, ClientException {
     981         return this.bucketOperation.getBucketReplication(genericRequest);
     982     }
     983 
     984     @Override
     985     public void deleteBucketReplication(String bucketName, String replicationRuleID)
     986             throws OSSException, ClientException {
     987         this.deleteBucketReplication(new DeleteBucketReplicationRequest(bucketName, replicationRuleID));
     988     }
     989 
     990     @Override
     991     public void deleteBucketReplication(DeleteBucketReplicationRequest deleteBucketReplicationRequest)
     992             throws OSSException, ClientException {
     993         this.bucketOperation.deleteBucketReplication(deleteBucketReplicationRequest);
     994     }
     995 
     996     @Override
     997     public BucketReplicationProgress getBucketReplicationProgress(String bucketName, String replicationRuleID)
     998             throws OSSException, ClientException {
     999         return this
    1000                 .getBucketReplicationProgress(new GetBucketReplicationProgressRequest(bucketName, replicationRuleID));
    1001     }
    1002 
    1003     @Override
    1004     public BucketReplicationProgress getBucketReplicationProgress(
    1005             GetBucketReplicationProgressRequest getBucketReplicationProgressRequest)
    1006             throws OSSException, ClientException {
    1007         return this.bucketOperation.getBucketReplicationProgress(getBucketReplicationProgressRequest);
    1008     }
    1009 
    1010     @Override
    1011     public List<String> getBucketReplicationLocation(String bucketName) throws OSSException, ClientException {
    1012         return this.getBucketReplicationLocation(new GenericRequest(bucketName));
    1013     }
    1014 
    1015     @Override
    1016     public List<String> getBucketReplicationLocation(GenericRequest genericRequest)
    1017             throws OSSException, ClientException {
    1018         return this.bucketOperation.getBucketReplicationLocation(genericRequest);
    1019     }
    1020 
    1021     @Override
    1022     public void addBucketCname(AddBucketCnameRequest addBucketCnameRequest) throws OSSException, ClientException {
    1023         this.bucketOperation.addBucketCname(addBucketCnameRequest);
    1024     }
    1025 
    1026     @Override
    1027     public List<CnameConfiguration> getBucketCname(String bucketName) throws OSSException, ClientException {
    1028         return this.getBucketCname(new GenericRequest(bucketName));
    1029     }
    1030 
    1031     @Override
    1032     public List<CnameConfiguration> getBucketCname(GenericRequest genericRequest) throws OSSException, ClientException {
    1033         return this.bucketOperation.getBucketCname(genericRequest);
    1034     }
    1035 
    1036     @Override
    1037     public void deleteBucketCname(String bucketName, String domain) throws OSSException, ClientException {
    1038         this.deleteBucketCname(new DeleteBucketCnameRequest(bucketName, domain));
    1039     }
    1040 
    1041     @Override
    1042     public void deleteBucketCname(DeleteBucketCnameRequest deleteBucketCnameRequest)
    1043             throws OSSException, ClientException {
    1044         this.bucketOperation.deleteBucketCname(deleteBucketCnameRequest);
    1045     }
    1046 
    1047     @Override
    1048     public BucketInfo getBucketInfo(String bucketName) throws OSSException, ClientException {
    1049         return this.getBucketInfo(new GenericRequest(bucketName));
    1050     }
    1051 
    1052     @Override
    1053     public BucketInfo getBucketInfo(GenericRequest genericRequest) throws OSSException, ClientException {
    1054         return this.bucketOperation.getBucketInfo(genericRequest);
    1055     }
    1056 
    1057     @Override
    1058     public BucketStat getBucketStat(String bucketName) throws OSSException, ClientException {
    1059         return this.getBucketStat(new GenericRequest(bucketName));
    1060     }
    1061 
    1062     @Override
    1063     public BucketStat getBucketStat(GenericRequest genericRequest) throws OSSException, ClientException {
    1064         return this.bucketOperation.getBucketStat(genericRequest);
    1065     }
    1066 
    1067     @Override
    1068     public void setBucketStorageCapacity(String bucketName, UserQos userQos) throws OSSException, ClientException {
    1069         this.setBucketStorageCapacity(new SetBucketStorageCapacityRequest(bucketName).withUserQos(userQos));
    1070     }
    1071 
    1072     @Override
    1073     public void setBucketStorageCapacity(SetBucketStorageCapacityRequest setBucketStorageCapacityRequest)
    1074             throws OSSException, ClientException {
    1075         this.bucketOperation.setBucketStorageCapacity(setBucketStorageCapacityRequest);
    1076     }
    1077 
    1078     @Override
    1079     public UserQos getBucketStorageCapacity(String bucketName) throws OSSException, ClientException {
    1080         return this.getBucketStorageCapacity(new GenericRequest(bucketName));
    1081     }
    1082 
    1083     @Override
    1084     public UserQos getBucketStorageCapacity(GenericRequest genericRequest) throws OSSException, ClientException {
    1085         return this.bucketOperation.getBucketStorageCapacity(genericRequest);
    1086     }
    1087 
    1088     @Override
    1089     public void setBucketEncryption(SetBucketEncryptionRequest setBucketEncryptionRequest)
    1090             throws OSSException, ClientException {
    1091         this.bucketOperation.setBucketEncryption(setBucketEncryptionRequest);
    1092     }
    1093 
    1094     @Override
    1095     public ServerSideEncryptionConfiguration getBucketEncryption(String bucketName)
    1096             throws OSSException, ClientException {
    1097         return this.getBucketEncryption(new GenericRequest(bucketName));
    1098     }
    1099 
    1100     @Override
    1101     public ServerSideEncryptionConfiguration getBucketEncryption(GenericRequest genericRequest)
    1102             throws OSSException, ClientException {
    1103         return this.bucketOperation.getBucketEncryption(genericRequest);
    1104     }
    1105 
    1106     @Override
    1107     public void deleteBucketEncryption(String bucketName) throws OSSException, ClientException {
    1108         this.deleteBucketEncryption(new GenericRequest(bucketName));
    1109     }
    1110 
    1111     @Override
    1112     public void deleteBucketEncryption(GenericRequest genericRequest) throws OSSException, ClientException {
    1113         this.bucketOperation.deleteBucketEncryption(genericRequest);
    1114     }
    1115 
    1116     @Override
    1117     public void setBucketPolicy(String bucketName, String policyText) throws OSSException, ClientException {
    1118         this.setBucketPolicy(new SetBucketPolicyRequest(bucketName, policyText));
    1119     }
    1120 
    1121     @Override
    1122     public void setBucketPolicy(SetBucketPolicyRequest setBucketPolicyRequest) throws OSSException, ClientException {
    1123         this.bucketOperation.setBucketPolicy(setBucketPolicyRequest);
    1124     }
    1125 
    1126     @Override
    1127     public GetBucketPolicyResult getBucketPolicy(GenericRequest genericRequest) throws OSSException, ClientException {
    1128         return this.bucketOperation.getBucketPolicy(genericRequest);
    1129     }
    1130 
    1131     @Override
    1132     public GetBucketPolicyResult getBucketPolicy(String bucketName) throws OSSException, ClientException {
    1133         return this.getBucketPolicy(new GenericRequest(bucketName));
    1134     }
    1135 
    1136     @Override
    1137     public void deleteBucketPolicy(GenericRequest genericRequest) throws OSSException, ClientException {
    1138         this.bucketOperation.deleteBucketPolicy(genericRequest);
    1139     }
    1140 
    1141     @Override
    1142     public void deleteBucketPolicy(String bucketName) throws OSSException, ClientException {
    1143         this.deleteBucketPolicy(new GenericRequest(bucketName));
    1144     }
    1145 
    1146     @Override
    1147     public UploadFileResult uploadFile(UploadFileRequest uploadFileRequest) throws Throwable {
    1148         return this.uploadOperation.uploadFile(uploadFileRequest);
    1149     }
    1150 
    1151     @Override
    1152     public DownloadFileResult downloadFile(DownloadFileRequest downloadFileRequest) throws Throwable {
    1153         return downloadOperation.downloadFile(downloadFileRequest);
    1154     }
    1155 
    1156     @Override
    1157     public CreateLiveChannelResult createLiveChannel(CreateLiveChannelRequest createLiveChannelRequest)
    1158             throws OSSException, ClientException {
    1159         return liveChannelOperation.createLiveChannel(createLiveChannelRequest);
    1160     }
    1161 
    1162     @Override
    1163     public void setLiveChannelStatus(String bucketName, String liveChannel, LiveChannelStatus status)
    1164             throws OSSException, ClientException {
    1165         this.setLiveChannelStatus(new SetLiveChannelRequest(bucketName, liveChannel, status));
    1166     }
    1167 
    1168     @Override
    1169     public void setLiveChannelStatus(SetLiveChannelRequest setLiveChannelRequest) throws OSSException, ClientException {
    1170         liveChannelOperation.setLiveChannelStatus(setLiveChannelRequest);
    1171     }
    1172 
    1173     @Override
    1174     public LiveChannelInfo getLiveChannelInfo(String bucketName, String liveChannel)
    1175             throws OSSException, ClientException {
    1176         return this.getLiveChannelInfo(new LiveChannelGenericRequest(bucketName, liveChannel));
    1177     }
    1178 
    1179     @Override
    1180     public LiveChannelInfo getLiveChannelInfo(LiveChannelGenericRequest liveChannelGenericRequest)
    1181             throws OSSException, ClientException {
    1182         return liveChannelOperation.getLiveChannelInfo(liveChannelGenericRequest);
    1183     }
    1184 
    1185     @Override
    1186     public LiveChannelStat getLiveChannelStat(String bucketName, String liveChannel)
    1187             throws OSSException, ClientException {
    1188         return this.getLiveChannelStat(new LiveChannelGenericRequest(bucketName, liveChannel));
    1189     }
    1190 
    1191     @Override
    1192     public LiveChannelStat getLiveChannelStat(LiveChannelGenericRequest liveChannelGenericRequest)
    1193             throws OSSException, ClientException {
    1194         return liveChannelOperation.getLiveChannelStat(liveChannelGenericRequest);
    1195     }
    1196 
    1197     @Override
    1198     public void deleteLiveChannel(String bucketName, String liveChannel) throws OSSException, ClientException {
    1199         this.deleteLiveChannel(new LiveChannelGenericRequest(bucketName, liveChannel));
    1200     }
    1201 
    1202     @Override
    1203     public void deleteLiveChannel(LiveChannelGenericRequest liveChannelGenericRequest)
    1204             throws OSSException, ClientException {
    1205         liveChannelOperation.deleteLiveChannel(liveChannelGenericRequest);
    1206     }
    1207 
    1208     @Override
    1209     public List<LiveChannel> listLiveChannels(String bucketName) throws OSSException, ClientException {
    1210         return liveChannelOperation.listLiveChannels(bucketName);
    1211     }
    1212 
    1213     @Override
    1214     public LiveChannelListing listLiveChannels(ListLiveChannelsRequest listLiveChannelRequest)
    1215             throws OSSException, ClientException {
    1216         return liveChannelOperation.listLiveChannels(listLiveChannelRequest);
    1217     }
    1218 
    1219     @Override
    1220     public List<LiveRecord> getLiveChannelHistory(String bucketName, String liveChannel)
    1221             throws OSSException, ClientException {
    1222         return this.getLiveChannelHistory(new LiveChannelGenericRequest(bucketName, liveChannel));
    1223     }
    1224 
    1225     @Override
    1226     public List<LiveRecord> getLiveChannelHistory(LiveChannelGenericRequest liveChannelGenericRequest)
    1227             throws OSSException, ClientException {
    1228         return liveChannelOperation.getLiveChannelHistory(liveChannelGenericRequest);
    1229     }
    1230 
    1231     @Override
    1232     public void generateVodPlaylist(String bucketName, String liveChannelName, String PlaylistName, long startTime,
    1233                                     long endTime) throws OSSException, ClientException {
    1234         this.generateVodPlaylist(
    1235                 new GenerateVodPlaylistRequest(bucketName, liveChannelName, PlaylistName, startTime, endTime));
    1236     }
    1237 
    1238     @Override
    1239     public void generateVodPlaylist(GenerateVodPlaylistRequest generateVodPlaylistRequest)
    1240             throws OSSException, ClientException {
    1241         liveChannelOperation.generateVodPlaylist(generateVodPlaylistRequest);
    1242     }
    1243 
    1244     @Override
    1245     public OSSObject getVodPlaylist(String bucketName, String liveChannelName, long startTime,
    1246                                     long endTime) throws OSSException, ClientException {
    1247         return this.getVodPlaylist(
    1248                 new GetVodPlaylistRequest(bucketName, liveChannelName, startTime, endTime));
    1249     }
    1250 
    1251     @Override
    1252     public OSSObject getVodPlaylist(GetVodPlaylistRequest getVodPlaylistRequest)
    1253             throws OSSException, ClientException {
    1254         return liveChannelOperation.getVodPlaylist(getVodPlaylistRequest);
    1255     }
    1256 
    1257     @Override
    1258     public String generateRtmpUri(String bucketName, String liveChannelName, String PlaylistName, long expires)
    1259             throws OSSException, ClientException {
    1260         return this.generateRtmpUri(new GenerateRtmpUriRequest(bucketName, liveChannelName, PlaylistName, expires));
    1261     }
    1262 
    1263     @Override
    1264     public String generateRtmpUri(GenerateRtmpUriRequest generateRtmpUriRequest) throws OSSException, ClientException {
    1265         return liveChannelOperation.generateRtmpUri(generateRtmpUriRequest);
    1266     }
    1267 
    1268     @Override
    1269     public void createSymlink(String bucketName, String symLink, String targetObject)
    1270             throws OSSException, ClientException {
    1271         this.createSymlink(new CreateSymlinkRequest(bucketName, symLink, targetObject));
    1272     }
    1273 
    1274     @Override
    1275     public void createSymlink(CreateSymlinkRequest createSymlinkRequest) throws OSSException, ClientException {
    1276         objectOperation.createSymlink(createSymlinkRequest);
    1277     }
    1278 
    1279     @Override
    1280     public OSSSymlink getSymlink(String bucketName, String symLink) throws OSSException, ClientException {
    1281         return this.getSymlink(new GenericRequest(bucketName, symLink));
    1282     }
    1283 
    1284     @Override
    1285     public OSSSymlink getSymlink(GenericRequest genericRequest) throws OSSException, ClientException {
    1286         return objectOperation.getSymlink(genericRequest);
    1287     }
    1288 
    1289     @Override
    1290     public GenericResult processObject(ProcessObjectRequest processObjectRequest) throws OSSException, ClientException {
    1291         return this.objectOperation.processObject(processObjectRequest);
    1292     }
    1293 
    1294     @Override
    1295     public void setBucketRequestPayment(String bucketName, Payer payer) throws OSSException, ClientException {
    1296         this.setBucketRequestPayment(new SetBucketRequestPaymentRequest(bucketName, payer));
    1297     }
    1298 
    1299     @Override
    1300     public void setBucketRequestPayment(SetBucketRequestPaymentRequest setBucketRequestPaymentRequest) throws OSSException, ClientException {
    1301         this.bucketOperation.setBucketRequestPayment(setBucketRequestPaymentRequest);
    1302     }
    1303 
    1304     @Override
    1305     public GetBucketRequestPaymentResult getBucketRequestPayment(String bucketName) throws OSSException, ClientException {
    1306         return this.getBucketRequestPayment(new GenericRequest(bucketName));
    1307     }
    1308 
    1309     @Override
    1310     public GetBucketRequestPaymentResult getBucketRequestPayment(GenericRequest genericRequest) throws OSSException, ClientException {
    1311         return this.bucketOperation.getBucketRequestPayment(genericRequest);
    1312     }
    1313 
    1314     @Override
    1315     public void setBucketQosInfo(String bucketName, BucketQosInfo bucketQosInfo) throws OSSException, ClientException {
    1316         this.setBucketQosInfo(new SetBucketQosInfoRequest(bucketName, bucketQosInfo));
    1317     }
    1318 
    1319     @Override
    1320     public void setBucketQosInfo(SetBucketQosInfoRequest setBucketQosInfoRequest) throws OSSException, ClientException {
    1321         this.bucketOperation.setBucketQosInfo(setBucketQosInfoRequest);
    1322     }
    1323 
    1324     @Override
    1325     public BucketQosInfo getBucketQosInfo(String bucketName) throws OSSException, ClientException {
    1326         return this.getBucketQosInfo(new GenericRequest(bucketName));
    1327     }
    1328 
    1329     @Override
    1330     public BucketQosInfo getBucketQosInfo(GenericRequest genericRequest) throws OSSException, ClientException {
    1331         return this.bucketOperation.getBucketQosInfo(genericRequest);
    1332     }
    1333 
    1334     @Override
    1335     public void deleteBucketQosInfo(String bucketName) throws OSSException, ClientException {
    1336         this.deleteBucketQosInfo(new GenericRequest(bucketName));
    1337     }
    1338 
    1339     @Override
    1340     public void deleteBucketQosInfo(GenericRequest genericRequest) throws OSSException, ClientException {
    1341         this.bucketOperation.deleteBucketQosInfo(genericRequest);
    1342     }
    1343 
    1344     @Override
    1345     public UserQosInfo getUserQosInfo() throws OSSException, ClientException {
    1346         return this.bucketOperation.getUserQosInfo();
    1347     }
    1348 
    1349     @Override
    1350     public SetAsyncFetchTaskResult setAsyncFetchTask(String bucketName,
    1351                                                      AsyncFetchTaskConfiguration asyncFetchTaskConfiguration) throws OSSException, ClientException {
    1352         return this.setAsyncFetchTask(new SetAsyncFetchTaskRequest(bucketName, asyncFetchTaskConfiguration));
    1353     }
    1354 
    1355     @Override
    1356     public SetAsyncFetchTaskResult setAsyncFetchTask(SetAsyncFetchTaskRequest setAsyncFetchTaskRequest)
    1357             throws OSSException, ClientException {
    1358         return this.bucketOperation.setAsyncFetchTask(setAsyncFetchTaskRequest);
    1359     }
    1360 
    1361     @Override
    1362     public GetAsyncFetchTaskResult getAsyncFetchTask(String bucketName, String taskId)
    1363             throws OSSException, ClientException {
    1364         return this.getAsyncFetchTask(new GetAsyncFetchTaskRequest(bucketName, taskId));
    1365     }
    1366 
    1367     @Override
    1368     public GetAsyncFetchTaskResult getAsyncFetchTask(GetAsyncFetchTaskRequest getAsyncFetchTaskRequest)
    1369             throws OSSException, ClientException {
    1370         return this.bucketOperation.getAsyncFetchTask(getAsyncFetchTaskRequest);
    1371     }
    1372 
    1373 //    @Override
    1374 //    public CreateVpcipResult createVpcip(CreateVpcipRequest createVpcipRequest) throws OSSException, ClientException {
    1375 //        return bucketOperation.createVpcip(createVpcipRequest);
    1376 //    }
    1377 //
    1378 //    @Override
    1379 //    public List<Vpcip> listVpcip() throws OSSException, ClientException {
    1380 //        return bucketOperation.listVpcip();
    1381 //    }
    1382 //
    1383 //    @Override
    1384 //    public void deleteVpcip(DeleteVpcipRequest deleteVpcipRequest) throws OSSException, ClientException {
    1385 //        bucketOperation.deleteVpcip(deleteVpcipRequest);
    1386 //    }
    1387 //
    1388 //    @Override
    1389 //    public void createBucketVpcip(CreateBucketVpcipRequest createBucketVpcipRequest) throws OSSException, ClientException {
    1390 //        bucketOperation.createBucketVpcip(createBucketVpcipRequest);
    1391 //    }
    1392 //
    1393 //    @Override
    1394 //    public void deleteBucketVpcip(DeleteBucketVpcipRequest deleteBucketVpcipRequest) throws OSSException, ClientException {
    1395 //        bucketOperation.deleteBucketVpcip(deleteBucketVpcipRequest);
    1396 //    }
    1397 //
    1398 //    @Override
    1399 //    public List<VpcPolicy> getBucketVpcip(GenericRequest genericRequest) throws OSSException, ClientException {
    1400 //        return bucketOperation.getBucketVpcip(genericRequest);
    1401 //    }
    1402 
    1403     @Override
    1404     public void createUdf(CreateUdfRequest createUdfRequest) throws OSSException, ClientException {
    1405         throw new ClientException("Not supported.");
    1406     }
    1407 
    1408     @Override
    1409     public UdfInfo getUdfInfo(UdfGenericRequest genericRequest) throws OSSException, ClientException {
    1410         throw new ClientException("Not supported.");
    1411     }
    1412 
    1413     @Override
    1414     public List<UdfInfo> listUdfs() throws OSSException, ClientException {
    1415         throw new ClientException("Not supported.");
    1416     }
    1417 
    1418     @Override
    1419     public void deleteUdf(UdfGenericRequest genericRequest) throws OSSException, ClientException {
    1420         throw new ClientException("Not supported.");
    1421     }
    1422 
    1423     @Override
    1424     public void uploadUdfImage(UploadUdfImageRequest uploadUdfImageRequest) throws OSSException, ClientException {
    1425         throw new ClientException("Not supported.");
    1426     }
    1427 
    1428     @Override
    1429     public List<UdfImageInfo> getUdfImageInfo(UdfGenericRequest genericRequest) throws OSSException, ClientException {
    1430         throw new ClientException("Not supported.");
    1431     }
    1432 
    1433     @Override
    1434     public void deleteUdfImage(UdfGenericRequest genericRequest) throws OSSException, ClientException {
    1435         throw new ClientException("Not supported.");
    1436     }
    1437 
    1438     @Override
    1439     public void createUdfApplication(CreateUdfApplicationRequest createUdfApplicationRequest)
    1440             throws OSSException, ClientException {
    1441         throw new ClientException("Not supported.");
    1442     }
    1443 
    1444     @Override
    1445     public UdfApplicationInfo getUdfApplicationInfo(UdfGenericRequest genericRequest)
    1446             throws OSSException, ClientException {
    1447         throw new ClientException("Not supported.");
    1448     }
    1449 
    1450     @Override
    1451     public List<UdfApplicationInfo> listUdfApplications() throws OSSException, ClientException {
    1452         throw new ClientException("Not supported.");
    1453     }
    1454 
    1455     @Override
    1456     public void deleteUdfApplication(UdfGenericRequest genericRequest) throws OSSException, ClientException {
    1457         throw new ClientException("Not supported.");
    1458     }
    1459 
    1460     @Override
    1461     public void upgradeUdfApplication(UpgradeUdfApplicationRequest upgradeUdfApplicationRequest)
    1462             throws OSSException, ClientException {
    1463         throw new ClientException("Not supported.");
    1464     }
    1465 
    1466     @Override
    1467     public void resizeUdfApplication(ResizeUdfApplicationRequest resizeUdfApplicationRequest)
    1468             throws OSSException, ClientException {
    1469         throw new ClientException("Not supported.");
    1470     }
    1471 
    1472     @Override
    1473     public UdfApplicationLog getUdfApplicationLog(GetUdfApplicationLogRequest getUdfApplicationLogRequest)
    1474             throws OSSException, ClientException {
    1475         throw new ClientException("Not supported.");
    1476     }
    1477 
    1478     @Override
    1479     public void shutdown() {
    1480         try {
    1481             serviceClient.shutdown();
    1482         } catch (Exception e) {
    1483             logException("shutdown throw exception: ", e);
    1484         }
    1485     }
    1486 
    1487 }
    重写OSS

    2、操作工具类

     1 import java.io.*;
     2 import java.net.URL;
     3 import java.util.Calendar;
     4 
     5 public class AliyunOSSUtils {
     6 
     7     private  String endPoint;
     8 
     9     private  String accessKeyId;
    10 
    11     private  String accessKeySecret;
    12 
    13     private OSSClient ossClient;
    14 
    15     public AliyunOSSUtils(String endPoint,String accessKeyId,String accessKeySecret)
    16     {
    17         this.endPoint=endPoint;
    18         this.accessKeyId=accessKeyId;
    19         this.accessKeySecret=accessKeySecret;
    20         // init OSSclient
    21         ossClient=new OSSClient(endPoint,accessKeyId,accessKeySecret);
    22     }
    23     /**
    24      * 上传文件
    25      * @param bucketName OSS-bucketName
    26      * @param objectName 上传对象名称包含文件夹名称,如 1.jpg,要上传到2020-02-25文件夹下,则值为 2020-02-25/1.jpg
    27      * @param inputStream 需要上传文件的文件流
    28      * */
    29     public void putFile(String bucketName, String objectName,InputStream inputStream)
    30     {
    31         ossClient.putObject(bucketName, objectName, inputStream);
    32         ossClient.shutdown();
    33     }
    34 
    35     /**
    36      * 获取临时文件地址
    37      * @param bucketName OSS-bucketName
    38      * @param objectName 文件地址 如有文件夹则拼接地址  2020-02-25/1.jpg
    39      * @param time  链接生效时间 单位:分钟
    40      * */
    41     public URL getFilePath(String bucketName,String objectName,Integer time)
    42     {
    43         // 该链接生成的过期时间
    44         Calendar calendar=Calendar.getInstance();
    45         calendar.add(Calendar.MINUTE,time);
    46         URL url=ossClient.generatePresignedUrl(bucketName,objectName,calendar.getTime());
    47         ossClient.shutdown();
    48         return url;
    49     }
    50 
    51     /**
    52      * 删除文件释放资源
    53      * @param bucketName OSS-bucketName
    54      * @param objectName  文件地址 如有文件夹则拼接地址  2020-02-25/1.jpg
    55      * */
    56     public void delFile(String bucketName,String objectName)
    57     {
    58         ossClient.deleteObject(bucketName,objectName);
    59         ossClient.shutdown();
    60     }
    61 }
    AliyunOSSUtils
  • 相关阅读:
    Sunnypig闯三角关
    送给圣诞夜的贺卡
    uva 1592(NEERC 2009 STL)
    uva 297(传递闭包 WF 1996)
    hdu 4190(二分)
    uva 3592 (MST, kruskal)
    uva 11997 (基础数据结构)
    hdu 2680 (Dijkstra)
    hdu 4568(状态压缩dp)
    hdu 4582 (树上的贪心)
  • 原文地址:https://www.cnblogs.com/rolayblog/p/12365516.html
Copyright © 2011-2022 走看看