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 }
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 }