1、重写OSS
![](https://i-blog.csdnimg.cn/blog_migrate/d170ff417b0d52a225550a7f13b51fab.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4a3d41abd7305bdf67515105c5be630a.gif)
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、操作工具类
![](https://i-blog.csdnimg.cn/blog_migrate/e2a330dee45b2345fcab0327551d3853.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/13b5b1f9a15a073714abe436b2964b2e.gif)
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 }