记一次使用阿里的_对象存储oss

喜欢ヅ旅行 2021-09-21 14:16 537阅读 0赞

阿里对象存储oss使用

  • 因功能需要自己搭建图片服务器所以使用了oss

因功能需要自己搭建图片服务器所以使用了oss

前期准备购买开通–略
话不多说:看自己写的工具类

  1. package com.jingpaidang.nxs.utils;
  2. import com.aliyun.oss.OSS;
  3. import com.aliyun.oss.OSSClientBuilder;
  4. import com.aliyun.oss.model.OSSObject;
  5. import com.aliyun.oss.model.OSSObjectSummary;
  6. import com.aliyun.oss.model.ObjectListing;
  7. import com.aliyun.oss.model.PutObjectResult;
  8. import java.io.*;
  9. /** * oss的工具类 * 教程:https://help.aliyun.com/document_detail/32011.html?spm=a2c4g.11186623.6.919.3b836e1dTdUyaS */
  10. public class OSSUtil {
  11. // Endpoint以杭州为例,其它Region请按实际情况填写。
  12. public static final String endpoint = "https://oss-cn-beijing.aliyuncs.com";
  13. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
  14. public static final String accessKeyId = "LT***********************B";
  15. public static final String accessKeySecret = "N********************E";
  16. public static final String bucketName = "m********e";
  17. public static void main(String[] ages){
  18. // 创建OSSClient实例。
  19. // OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
  20. // // 创建存储空间。
  21. // ossClient.createBucket(bucketName);
  22. // // 关闭OSSClient。
  23. // ossClient.shutdown();
  24. // 上传文件到指定的存储空间(bucketName)并将其保存为指定的文件名称(objectName)。
  25. String content = "Hello OSS";
  26. // <yourObjectName>
  27. //String objectName = "<yourObjectName>";//objectName 上传文件名
  28. //ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(content.getBytes()));
  29. upload("test.txt",content.getBytes());
  30. }
  31. /** * 上传文件 * @param objectName 上传文件到OSS时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。 * @param buf 二进制文件 */
  32. public static void upload(String objectName,byte buf[]){
  33. // 创建OSSClient实例。
  34. OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
  35. PutObjectResult rollback = ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(buf));
  36. // 关闭OSSClient。
  37. ossClient.shutdown();
  38. }
  39. /** * 上传文件 * @param objectName 上传文件到OSS时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。 * @param inputStream 输入流 */
  40. public static void uploadByInputStream(String objectName,InputStream inputStream){
  41. if(inputStream == null){
  42. return;
  43. }
  44. // 创建OSSClient实例。
  45. OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
  46. PutObjectResult rollback = ossClient.putObject(bucketName, objectName, inputStream);
  47. // 关闭OSSClient。
  48. ossClient.shutdown();
  49. }
  50. /** * 文件下载 * @throws IOException io异常 */
  51. public static void downloadFile(String objectName) throws IOException {
  52. // 创建OSSClient实例。
  53. OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
  54. // 调用ossClient.getObject返回一个OSSObject实例,该实例包含文件内容及文件元信息。
  55. OSSObject ossObject = ossClient.getObject(bucketName, objectName);
  56. // 调用ossObject.getObjectContent获取文件输入流,可读取此输入流获取其内容。
  57. InputStream content = ossObject.getObjectContent();
  58. if (content != null) {
  59. BufferedReader reader = new BufferedReader(new InputStreamReader(content));
  60. while (true) {
  61. String line = reader.readLine();
  62. if (line == null) break;
  63. System.out.println("\n" + line);
  64. }
  65. // 数据读取完成后,获取的流必须关闭,否则会造成连接泄漏,导致请求无连接可用,程序无法正常工作。
  66. content.close();
  67. }
  68. // 关闭OSSClient。
  69. ossClient.shutdown();
  70. }
  71. /** * 列举文件 * 以下代码用于列举指定存储空间下的文件。默认列举100个文件。 */
  72. public static void listFile(){
  73. // 创建OSSClient实例。
  74. OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
  75. // ossClient.listObjects返回ObjectListing实例,包含此次listObject请求的返回结果。
  76. ObjectListing objectListing = ossClient.listObjects(bucketName);
  77. // objectListing.getObjectSummaries获取所有文件的描述信息。
  78. for (OSSObjectSummary objectSummary : objectListing.getObjectSummaries()) {
  79. System.out.println(" - " + objectSummary.getKey() + " " +
  80. "(size = " + objectSummary.getSize() + ")");
  81. }
  82. // 关闭OSSClient。
  83. ossClient.shutdown();
  84. }
  85. /** * 删除文件 */
  86. public static void deleteFile(String objectName){
  87. // 创建OSSClient实例。
  88. OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
  89. // 删除文件。
  90. ossClient.deleteObject(bucketName, objectName);
  91. // 关闭OSSClient。
  92. ossClient.shutdown();
  93. }
  94. }

其它的就是自己引用了

发表评论

表情:
评论列表 (有 0 条评论,537人围观)

还没有评论,来说两句吧...

相关阅读