BucketFileTest.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package com.cnd3b.utility.obs;
  2. import com.obs.services.ObsClient;
  3. import com.obs.services.model.HttpMethodEnum;
  4. import com.obs.services.model.ObjectMetadata;
  5. import com.obs.services.model.TemporarySignatureRequest;
  6. import com.obs.services.model.TemporarySignatureResponse;
  7. import com.obs.services.model.fs.DropFolderRequest;
  8. public class BucketFileTest {
  9. protected String bucketname;
  10. ObsClient obsClient;
  11. public BucketFileTest(String siteid) {
  12. // 创建ObsClient实例
  13. obsClient = new ObsClient("4RMST7WMRECXTYVMFVZQ", "YbxBUDT2UeohsWi7dyZ8MCUKOTodjrqNwnZ0VjEL", "obs.cn-east-2.myhuaweicloud.com");
  14. this.bucketname = siteid.toLowerCase();
  15. }
  16. public static void main(String[] args) {
  17. // BucketFileTest bucketFile1 = new BucketFileTest("BCDQ");
  18. // //ObjectMetadata data= bucketFile1.getObjectMetadata("202108031627962912130B1e0afa29.mp4");
  19. // //System.err.println(data.getContentLength());
  20. // bucketFile1.getCes();
  21. // bucketFile1.close();
  22. // //BucketFileTest bucketFile1 = new BucketFileTest("BCDQ");
  23. }
  24. public boolean doesObjectExist(String objectname) {
  25. return obsClient.doesObjectExist(bucketname, objectname);
  26. }
  27. /**
  28. * 文件删除,如果存在缩略文件,则缩略文件会一起删除
  29. *
  30. * @param objectname
  31. */
  32. public void deleteFile(String objectname) {
  33. obsClient.deleteObject(bucketname, objectname);
  34. if (obsClient.doesObjectExist(bucketname, "s_" + objectname)) {
  35. obsClient.deleteObject(bucketname, "s_" + objectname);
  36. }
  37. if (obsClient.doesObjectExist(bucketname, "c_" + objectname)) {
  38. obsClient.deleteObject(bucketname, "c_" + objectname);
  39. }
  40. }
  41. public void deleteFolder(String foldername) {
  42. DropFolderRequest dropFolderRequest = new DropFolderRequest(bucketname, foldername);
  43. obsClient.dropFolder(dropFolderRequest);
  44. }
  45. public ObjectMetadata getObjectMetadata(String objectname) {
  46. ObjectMetadata metadata = obsClient.getObjectMetadata(bucketname, objectname);
  47. return metadata;
  48. }
  49. /**
  50. * 获取文件下载地址
  51. */
  52. public String getFileUrl(String filename) {
  53. //临时访问地址有效时间
  54. //long expireSeconds = 3600L;
  55. // 创建ObsClient实例
  56. TemporarySignatureRequest request = new TemporarySignatureRequest(HttpMethodEnum.GET, 3600);
  57. request.setBucketName(bucketname);
  58. request.setObjectKey(filename);
  59. // 生成临时授权URL
  60. TemporarySignatureResponse response = obsClient.createTemporarySignature(request);
  61. //截取永久访问url,需要桶设置公共访问策略
  62. String url = response.getSignedUrl();
  63. return url.substring(0, url.indexOf("?"));
  64. }
  65. /**
  66. * 关闭
  67. */
  68. public void close() {
  69. if (obsClient != null) {
  70. try {
  71. obsClient.close();
  72. } catch (Exception e) {
  73. e.printStackTrace();
  74. }
  75. }
  76. }
  77. }