✅P62_品牌管理-OSS整合测试

gong_yz大约 3 分钟谷粒商城

对象存储 OSS-SDK示例

将如下代码粘贴至测试方法:

其中 **Endpoint(地域节点)**为红色框所示:

开通阿里云账号AccessKey

点击“Accesskey管理”:

新建子账号:

勾选“Open API调用访问”,生成 **AccessKeyId AccessKeySecret **

分配权限:

如果提示:

  • 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
  • 言外之意就是别用阿里云账号的AccessKey。

操作:

  1. 登录RAM控制台open in new window
  2. 在左侧导航栏,选择身份管理 > 用户
  3. 用户页面,单击目标RAM用户名称。
  4. 用户AccessKey区域,单击创建AccessKey
  5. 根据界面提示完成安全验证。
  6. 创建AccessKey对话框,查看AccessKey ID和AccessKey Secret。您可以单击下载CSV文件,下载AccessKey信息。单击复制,复制AccessKey信息。

测试上传

测试代码:cfmall-product/src/test/java/com/gyz/cfmall/product/CfmallProductApplicationTests.java

    @Test
    public void testUpload() throws FileNotFoundException {
        // yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
        String endpoint = "oss-cn-beijing.aliyuncs.com";
        // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
        String accessKeyId = "填写自己的accessKeyId";
        String accessKeySecret = "填写自己的accessKeySecret";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        // 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。
        InputStream inputStream = new FileInputStream("E:\\SSM_study\\picture\\center.jpg");
        // 依次填写Bucket名称(例如examplebucket)和Object完整路径(例如exampledir/exampleobject.txt)。Object完整路径中不能包含Bucket名称。
        ossClient.putObject("cfmall-hello", "center.jpg", inputStream);

        // 关闭OSSClient。
        ossClient.shutdown();
        System.out.println("上传完成");
    }

上传成功:

正常访问:


使用 SpringCloud Alibaba-OSSopen in new window

阿里云OSS案例open in new window

cfmall-common 工程引入OSS的jar

<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alicloud-oss -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alicloud-oss</artifactId>
    <version>2.2.0.RELEASE</version>
</dependency>

cfmall-productapplication.yml中配置 accessKeyId、secretAccessKey 和 endpoint。

spring:
  datasource:
   ......
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
    alicloud:
      access-key:  AccessKey ID
      secret-key:  AccessKey Secret
      oss:
        endpoint: oss-cn-beijing.aliyuncs.com

测试代码: cfmall-product/src/test/java/com/gyz/cfmall/product/CfmallProductApplicationTests.java

	@Autowired
	OSSClient ossClient;

	@Test
    public void testUpload() throws FileNotFoundException {
        // 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。
        InputStream inputStream = new FileInputStream("E:\\SSM_study\\picture\\lala.jpg");
        // 依次填写Bucket名称(例如examplebucket)和Object完整路径(例如exampledir/exampleobject.txt)。Object完整路径中不能包含Bucket名称。
        ossClient.putObject("cfmall-hello", "lala.jpg", inputStream);

        // 关闭OSSClient。
        ossClient.shutdown();
        System.out.println("上传完成");
    }

上传成功