阿里云OSS 存储对象的注册与使用

目录

一、什么是阿里云OSS

二、 点击免费试用

2.1 选择第一个,点击免费试用 ​编辑

2.2 登录管理控制台

2.3 进入Bucket

2.4、在阿里云网站上的个人中心配置Accesskey,查询accessKeyId和accessKeySecret。 

2.5、进入AccssKey管理页面应该会出现下图提示,accessKeySecret为空,不用点击下载,直接确定即可

2.6 点击创建AccessKe

​编辑 三、OSS结合代码使用

3.1 引入pom.xml 依赖

3.2、创建对应的工具类AliOssUtil类,此代码是固定代码,直接CV即可

3.3 、在该工具类中有四个属性,通过上面的步骤已经获得了我们上传图片到OSS所需要的四个参数:bucketName、endpoint、accessKeyId、accessKeySecret。这些属性需要我们手动在application.properties中配置。

3.4 配置相应的model类

3.5、将工具类配置到ioc容器中,便于后续的使用。

3.6 测试:创建控制层


一、什么是阿里云OSS

    阿里云对象存储服务(Object Storage Service,简称OSS)是阿里云推出的一种在线存储服务,旨在为企业和个人用户提供安全、可靠、便捷且经济高效的云存储解决方案

二、开通服务(新用户使用三个月)

https://www.aliyun.com/product/oss?spm=5176.8465980.unusable.ddetail.7df51450v1aNb1

二、 点击免费试用

2.1 选择第一个,点击免费试用 

2.2 登录管理控制台

https://oss.console.aliyun.com/overview 

在左侧导航栏,单击Bucket列表,然后单击创建Bucket

2.3 进入Bucket

 点击概要 

2.4、在阿里云网站上的个人中心配置Accesskey,查询accessKeyId和accessKeySecret。 

2.5、进入AccssKey管理页面应该会出现下图提示,accessKeySecret为空,不用点击下载,直接确定即可

 

2.6 点击创建AccessKe

  •  通过安全验证后可以看到生成的accessKeyId和accessKeySecret,大家下载csv文件或者复制下来,因为点击确定后不再显示accessKeySecret!!

 

点击确定

 三、OSS结合代码使用

3.1 引入pom.xml 依赖

  <dependency>
       <groupId>com.aliyun.oss</groupId>
       <artifactId>aliyun-sdk-oss</artifactId>
       <version>3.10.2</version>
    </dependency>

3.2、创建对应的工具类AliOssUtil类,此代码是固定代码,直接CV即可

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.io.ByteArrayInputStream;
 
@Data
@AllArgsConstructor
//固定代码,CV直接使用
public class AliOssUtil {
 
    private String endpoint;
    private String accessKeyId;
    private String accessKeySecret;
    private String bucketName;
 
    /**
     * 文件上传
     *
     * @param bytes :传入的文件要转为byte[]
     * @param objectName :表示在oss中存储的文件名字。
     * @return
     */
    public String upload(byte[] bytes, String objectName) {
 
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
 
        try {
            // 创建PutObject请求。
            ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes));
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
 
        //文件访问路径规则 https://BucketName.Endpoint/ObjectName
        StringBuilder stringBuilder = new StringBuilder("https://");
        stringBuilder
                .append(bucketName)
                .append(".")
                .append(endpoint)
                .append("/")
                .append(objectName);
 
        return stringBuilder.toString();
    }
}

3.3 、在该工具类中有四个属性,通过上面的步骤已经获得了我们上传图片到OSS所需要的四个参数:bucketName、endpoint、accessKeyId、accessKeySecret。这些属性需要我们手动在application.properties中配置。

# 配置阿里云OSS(application.properties)
aliyun.oss.bucketName = hyc-8147
aliyun.oss.endpoint = oss-cn-beijing.aliyuncs.com
aliyun.oss.accessKeyId = LTAI5tE2krid8AXzidDUpn9n
aliyun.oss.accessKeySecret = 2A0Vrvj982nfRPWDVt3lp

# yml版(application.yml)
#aliyun:
#  oss:
#    bucketName: hyc-8147
#    endpoint: oss-cn-beijing.aliyuncs.com
#    accessKeyId: LTAI5tE2krid8AXzidDUpn9n
#    accessKeySecret: 2A0Vrvj982nfRPWDVt3lp

3.4 配置相应的model类

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * <p>Project: wms-project - OSSConfig</p>
 * <p>Powered by fpl1116 On 2024-02-28 23:26:54</p>
 * <p>描述:<p>
 *
 * @author penglei
 * @version 1.0
 * @since 1.8
 */

@Configuration
@ConfigurationProperties(prefix = "aliyun.oss")
@Data
public class AliOssProperties {

    private String endpoint;
    private String accessKeyId;
    private String accessKeySecret;
    private String bucketName;


}

3.5、将工具类配置到ioc容器中,便于后续的使用。

import com.fpl.model.AliOssProperties;
import com.fpl.utils.AliOssUtil;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class OssConfiguration {
    @Bean
    @ConditionalOnMissingBean
    public AliOssUtil getAliOssUtil(AliOssProperties aliOssProperties) {
//        log.info("创建OssUtil");
        AliOssUtil aliOssUtil = new AliOssUtil(
                aliOssProperties.getEndpoint(),
                aliOssProperties.getAccessKeyId(),
                aliOssProperties.getAccessKeySecret(),
                aliOssProperties.getBucketName()
        );
        return aliOssUtil;
    }
}

3.6 测试:创建控制层

@RestController
@RequestMapping("api/upload")
public class UploadController {
 
     @Autowired
    private AliOssUtil aliOssUtil;

    @PostMapping("/oss1")
    //万能上传
    public String upload1(@RequestBody UploadInfo uploadInfo){
        String name = uploadInfo.getName();
        String base64 = uploadInfo.getBase64();
        String[] base64Array = StrUtil.splitToArray(base64, "base64,");
        byte[] bytes = Base64.decode(base64Array[1]);
        name = PinyinUtil.getPinyin(name, "");
        String newName = System.currentTimeMillis() +"_"+name;
        return aliOssUtil.upload1(bytes, newName);

    }
}

  • 25
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天的接口写完了吗?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值