• 阿里云oss存储文件上传功能实现(保姆级教程)


    先登录:

    点击进入控制台

    点击左上角导航栏按钮

    搜索oss,点击进入

    进入之后点击立即开通oss按钮,开通之后点击下图立即创建,弹出创建Bucket

    填上Bucket名称,读写权限改为公共读。其他不变点击确定创建,完成之后点击进入Bucket

    光标放到右上角头像,弹出AccessKey管理,点击进入,点击继续使用AccessKey

    点击创建AccessKey,完成手机验证码验证

    保存好AccessKey

    左侧导航栏,点击sdk下载。找到java,点击查看小图标查看文档,再文档中心打开

    找到java安装,将maven依赖坐标导入,pom.xml中。

    1. <dependency>
    2. <groupId>com.aliyun.ossgroupId>
    3. <artifactId>aliyun-sdk-ossartifactId>
    4. <version>3.15.1version>
    5. dependency>
    6. <dependency>
    7. <groupId>javax.xml.bindgroupId>
    8. <artifactId>jaxb-apiartifactId>
    9. <version>2.3.1version>
    10. dependency>
    11. <dependency>
    12. <groupId>javax.activationgroupId>
    13. <artifactId>activationartifactId>
    14. <version>1.1.1version>
    15. dependency>
    16. <dependency>
    17. <groupId>org.glassfish.jaxbgroupId>
    18. <artifactId>jaxb-runtimeartifactId>
    19. <version>2.3.3version>
    20. dependency>

    找到java简单上传,将上传字符串这个代码复制过来

    测试类中建一个demo类

    改代码:---->

    1. /*endpoint是服务器的区域节点,将我们自己服务器的节点复制过来*/
    2. String endpoint = "https://oss-cn-beijing.aliyuncs.com";

     

    1. //注释掉自带的定义的环境变量,用我们自己的AccessKey定义
    2. //EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
    3. String ACCESS_KEY_ID="LTAI5tNGKYfsdhshhgs7GZ";
    4. String ACCESS_KEY_SECRET="UBMW01zF9AAtrhN7W4ZqBdTvyylD";
    1. /*我们的bucket名称,我们之前自己定义的,填过来*/
    2. String bucketName = "god-626";
    1. /*我们定义要存储的对象的名字*/
    2. String objectName = "123.png";
    1. /*credentialsProvider被我们注释掉了,改成ACCESS_KEY_ID,ACCESS_KEY_SECRET*/
    2. OSS ossClient = new OSSClientBuilder().build(endpoint,ACCESS_KEY_ID,ACCESS_KEY_SECRET);
    3. try {
    4. // 填写字符串。
    5. String content = "Hello OSS,你好世界";
    6. // 创建PutObjectRequest对象。
    7. /*new 字符串输入流,改为new 文件输入流,加上我们定义的地址*/
    8. PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new FileInputStream("C:\\Users\\19545\\Desktop\\files\\123.jpg"));

     完整代码:

    1. package com.lin.springboot01;
    2. import com.aliyun.oss.ClientException;
    3. import com.aliyun.oss.OSS;
    4. import com.aliyun.oss.common.auth.*;
    5. import com.aliyun.oss.OSSClientBuilder;
    6. import com.aliyun.oss.OSSException;
    7. import com.aliyun.oss.model.PutObjectRequest;
    8. import com.aliyun.oss.model.PutObjectResult;
    9. import java.io.ByteArrayInputStream;
    10. import java.io.FileInputStream;
    11. public class Demo {
    12. public static void main(String[] args) throws Exception {
    13. // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
    14. /*endpoint是服务器的区域节点,将我们自己服务器的节点复制过来*/
    15. String endpoint = "https://oss-cn-beijing.aliyuncs.com";
    16. // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
    17. //注释掉自带的定义的环境变量,用我们自己的AccessKey定义
    18. //EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
    19. String ACCESS_KEY_ID="LTAI5tNGgdsfdstVc1GH7GZ";
    20. String ACCESS_KEY_SECRET="UBMWQ01zsgsfdgsdgfBdTvyUDylD";
    21. // 填写Bucket名称,例如examplebucket。
    22. /*我们的bucket名称,我们之前自己定义的,填过来*/
    23. String bucketName = "god-626";
    24. // 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
    25. /*我们定义要存储的对象的名字*/
    26. String objectName = "123.png";
    27. // 创建OSSClient实例。
    28. /*credentialsProvider被我们注释掉了,改成ACCESS_KEY_ID,ACCESS_KEY_SECRET*/
    29. OSS ossClient = new OSSClientBuilder().build(endpoint,ACCESS_KEY_ID,ACCESS_KEY_SECRET);
    30. try {
    31. // 填写字符串。
    32. String content = "Hello OSS,你好世界";
    33. // 创建PutObjectRequest对象。
    34. /*new 字符串输入流,改为new 文件输入流,加上我们定义的地址*/
    35. PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new FileInputStream("C:\\Users\\19545\\Desktop\\files\\123.jpg"));
    36. // 如果需要上传时设置存储类型和访问权限,请参考以下示例代码。
    37. // ObjectMetadata metadata = new ObjectMetadata();
    38. // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());
    39. // metadata.setObjectAcl(CannedAccessControlList.Private);
    40. // putObjectRequest.setMetadata(metadata);
    41. // 上传字符串。
    42. PutObjectResult result = ossClient.putObject(putObjectRequest);
    43. } catch (OSSException oe) {
    44. System.out.println("Caught an OSSException, which means your request made it to OSS, "
    45. + "but was rejected with an error response for some reason.");
    46. System.out.println("Error Message:" + oe.getErrorMessage());
    47. System.out.println("Error Code:" + oe.getErrorCode());
    48. System.out.println("Request ID:" + oe.getRequestId());
    49. System.out.println("Host ID:" + oe.getHostId());
    50. } catch (ClientException ce) {
    51. System.out.println("Caught an ClientException, which means the client encountered "
    52. + "a serious internal problem while trying to communicate with OSS, "
    53. + "such as not being able to access the network.");
    54. System.out.println("Error Message:" + ce.getMessage());
    55. } finally {
    56. if (ossClient != null) {
    57. ossClient.shutdown();
    58. }
    59. }
    60. }
    61. }

    完成,运行!

  • 相关阅读:
    Redis 详解及高级特性
    【Netty源码系列(二)】解读EventLoopGroup
    建筑能源管理(3)——建筑能源监管
    南大通用GBase8s 常用SQL语句(236)
    JavaScript游戏开发(3)(笔记)
    linux 多重启动grub2详解
    __proto__和protype的区别
    硒化镉量子点 CdSe QDs 的产品形态和产品规格描述
    单源点最短路径(输出路径)
    SpringBoot 员工管理---通用模板 ---苍穹外卖day2
  • 原文地址:https://blog.csdn.net/m0_71088505/article/details/134533315