AliyunOSS.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. package com.key.common.plugs.aliyun;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.FileNotFoundException;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.util.List;
  8. import com.aliyun.oss.OSSClient;
  9. import com.aliyun.oss.model.ListObjectsRequest;
  10. import com.aliyun.oss.model.OSSObject;
  11. import com.aliyun.oss.model.OSSObjectSummary;
  12. import com.aliyun.oss.model.ObjectListing;
  13. import com.aliyun.oss.model.ObjectMetadata;
  14. import com.aliyun.oss.model.PutObjectResult;
  15. import com.key.common.utils.DiaowenProperty;
  16. import org.apache.struts2.dispatcher.multipart.UploadedFile;
  17. /**
  18. * @author keyuan(keyuan258@gmail.com)
  19. *
  20. * https://github.com/wkeyuan/DWSurvey
  21. * http://dwsurvey.net
  22. */
  23. public class AliyunOSS {
  24. /*
  25. static String ACCESS_KEY_ID = "";
  26. static String SECRET_ACCESS_KEY = "";
  27. // 以杭州为例
  28. //static String endpoint = "http://oss-cn-shenzhen-internal.aliyuncs.com";
  29. static String ENDPOINT = "http://gz.bcebos.com";
  30. public static String WENJUANHTML_BACKET="";
  31. public static String UPLOADFILE_BACKET="";
  32. public static String UPLOADFILE_JM_BACKET="";
  33. */
  34. private static OSSClient getOSSClient() {
  35. // OSSClient client = new OSSClient(ENDPOINT, ACCESS_KEY_ID,SECRET_ACCESS_KEY);
  36. OSSClient client = new OSSClient(DiaowenProperty.ENDPOINT, DiaowenProperty.ACCESS_KEY_ID,
  37. DiaowenProperty.SECRET_ACCESS_KEY);
  38. return client;
  39. }
  40. public static void putObject(String bucketName, File file, String fileName)
  41. throws IOException {
  42. // 初始化OSSClient
  43. OSSClient client = getOSSClient();
  44. // 获取指定文件的输入流
  45. // File file = new File(fileRealPath + fileName);
  46. InputStream content = new FileInputStream(file);
  47. // 创建上传Object的Metadata
  48. ObjectMetadata meta = new ObjectMetadata();
  49. // 必须设置ContentLength
  50. // meta.setContentLength(file.length());
  51. meta.setContentEncoding("UTF-8");
  52. // 上传Object.
  53. String key = fileName;
  54. PutObjectResult result = client.putObject(bucketName, key, content,
  55. meta);
  56. content.close();
  57. }
  58. public static void putObject(String bucketName, InputStream inputStream,
  59. String fileName) throws FileNotFoundException {
  60. // 初始化OSSClient
  61. OSSClient client = getOSSClient();
  62. // 获取指定文件的输入流
  63. // File file = new File(fileRealPath + fileName);
  64. // InputStream content = new FileInputStream(file);
  65. InputStream content = inputStream;
  66. // 创建上传Object的Metadata
  67. ObjectMetadata meta = new ObjectMetadata();
  68. // 必须设置ContentLength
  69. // meta.setContentLength(file.length());
  70. // meta.setContentEncoding("UTF-8");
  71. // 上传Object.
  72. String key = fileName;
  73. PutObjectResult result = client.putObject(bucketName, key, content,
  74. meta);
  75. }
  76. public static InputStream getObject(String bucketName, String fileName) {
  77. // 初始化OSSClient
  78. OSSClient client = getOSSClient();
  79. // client.getObject(new GetObjectRequest(bucketName, key),new
  80. // File(filename));
  81. OSSObject ossObject = client.getObject(bucketName, fileName);
  82. InputStream inputStream = ossObject.getObjectContent();
  83. return inputStream;
  84. }
  85. public static List<OSSObjectSummary> getObjectList(String bucketName,
  86. String prefix, int endIndex, int maxKeys) {
  87. // 初始化OSSClient
  88. OSSClient client = getOSSClient();
  89. // 构造ListObjectsRequest请求
  90. ListObjectsRequest listObjectsRequest = new ListObjectsRequest(
  91. bucketName);
  92. // 递归列出fun目录下的所有文件
  93. listObjectsRequest.setPrefix(prefix);
  94. listObjectsRequest.setMaxKeys(maxKeys);
  95. // listObjectsRequest.setMarker("ueditor/jsp/upload/image/20150614/1434267568217077840.jpg");
  96. ObjectListing listing = null;
  97. String nextMarker = null;
  98. // endIndex>maxKeys
  99. int pageNum = endIndex / maxKeys;
  100. for (int i = 0; i < pageNum; i++) {
  101. if (nextMarker != null) {
  102. listObjectsRequest.setMarker(nextMarker);
  103. }
  104. listing = client.listObjects(listObjectsRequest);
  105. nextMarker = listing.getNextMarker();
  106. }
  107. // 遍历所有Object
  108. List<OSSObjectSummary> objectSummarys = listing.getObjectSummaries();
  109. return objectSummarys;
  110. // 遍历所有CommonPrefix
  111. /*
  112. * System.out.println("\nCommonPrefixs:"); for (String commonPrefix :
  113. * listing.getCommonPrefixes()) { System.out.println(commonPrefix); }
  114. */
  115. }
  116. public static void main(String[] args) {
  117. List<OSSObjectSummary> objectSummaries = AliyunOSS.getObjectList(
  118. DiaowenProperty.UPLOADFILE_BACKET, "ueditor/jsp/upload/image/", 4, 2);
  119. System.out.println(objectSummaries.size());
  120. for (OSSObjectSummary ossObjectSummary : objectSummaries) {
  121. System.out.println(ossObjectSummary.getKey() + ":"
  122. + ossObjectSummary.getSize());
  123. }
  124. }
  125. }