各平台对象存储

一、阿里云对象存储

官方文档:https://help.aliyun.com/zh/oss/getting-started/getting-started-with-oss?spm=a2c4g.11186623.0.0.299a646c6nWWcW

1.引入maven

官网:https://help.aliyun.com/zh/oss/developer-reference/java-installation?spm=a2c4g.11186623.0.i12

bash 复制代码
<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.15.1</version>
</dependency>

如果使用的是Java 9及以上的版本,则需要添加JAXB相关依赖。添加JAXB相关依赖示例代码如下:

bash 复制代码
<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.1</version>
</dependency>
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>
<!-- no more than 2.3.3-->
<dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-runtime</artifactId>
    <version>2.3.3</version>
</dependency>

2.Endpoint地址获取

3.环境变量配置

官网:https://help.aliyun.com/zh/oss/developer-reference/oss-java-configure-access-credentials?spm=a2c4g.11186623.0.i14

以windows为例,配置之后重启idea工具(我这配置之后没生效,重启之后生效)

4.工具类

java 复制代码
package com.dcqq.common.utils;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.common.auth.CredentialsProviderFactory;
import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;

public class AliYunOssUtil {

    // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
    private static String endpoint = "https://oss-cn-beijing.aliyuncs.com";

    // 填写Bucket名称,例如examplebucket。
    private static String bucketName = "examplebucket";

    private static String url = "https://"+bucketName+".oss-cn-beijing.aliyuncs.com/";

    /**
     * 文件上传
     * @param bytes
     * @param objectName 阿里云存储文件的位置,包括文件名,不包含存储桶bucket名称,如:upload/1.png ,注意:upload前面不能有斜杠
     * @return
     * @throws Exception
     */
    public static String upload(byte[] bytes,String objectName) throws Exception {
        // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();

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

        ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes));
        return url+objectName;
    }


    public static void main(String[] args) throws Exception {
        File file=new File("C:\\图片\\1.png");
        FileInputStream fileInputStream=new FileInputStream(file);
        byte[] fileBytes = new byte[(int) file.length()];
        fileInputStream.read(fileBytes);
        upload(fileBytes,"upload/1.png");

    }
}
相关推荐
SimonKing20 分钟前
Workbuddy太占C盘空间了,写个迁移工具迁走10G的数据
java·后端·程序员
Hvitur1 小时前
Java - Lambda
java·开发语言·python
apcipot_rain6 小时前
C++转Java日记(06)
java·开发语言
金銀銅鐵10 小时前
带您看懂字节码指令(一):一帧里有什么
java·后端·ai编程
nice_lcj52012 小时前
【从零理解 Spring AI · 14】RAG 的四个环节:加载、切分、向量化、检索
java·spring boot·embedding·向量数据库·rag·spring ai·ai应用开发
学长毕设14 小时前
基于springboot科创竞赛信息平台-附源码
java·spring boot·后端
聪明的笨猪猪14 小时前
Java 工程案例:AI 生成 @Async 异步线程池踩坑
java·经验分享·面试·ai编程
学长毕设15 小时前
基于SpringBoot公务员考试交流平台-附源码
java·spring boot·后端
SL_staff17 小时前
私有化低代码:面向强监管行业的可控数字化实践
java·低代码
柳鲲鹏18 小时前
内斗学概论:43、平级内斗
笔记