华为obs上传下载-Java版 2023-11-23

弄了半天,老师帮弄成功了,经过同意,分享到网上,希望能帮助更多人,至于怎么弄的,我也不知道。

创建idea项目后,项目结构,对应文件没有的创一个

pom.xm

注意改Java版本,我的是11,然后重新mavan配置

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>obs</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>//修改java版本
        <maven.compiler.target>11</maven.compiler.target>//修改java版本
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.huaweicloud</groupId>
            <artifactId>esdk-obs-java-bundle</artifactId>
            <version>3.21.11</version>
        </dependency>
        <!-- OBS SDK 依赖 -->
        <!-- Spring Boot Starter Web 依赖,用于处理 web 相关的内容 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.5.4</version> <!-- 替换为你实际使用的 Spring Boot 版本 -->
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>2.5.4</version> <!-- 替换为你实际使用的 Spring Boot 版本 -->
        </dependency>


    </dependencies>


</project>

application.properties

css 复制代码
# huawei ods
huawei.obs.ak=修改成你的ak
huawei.obs.sk=修改成你的sk
# ???endPoint
huawei.obs.upload.endPoint=endPoint.com
# ???endPoint
huawei.obs.access.endPoint=https://endPoint.com
# ?
huawei.obs.bucketName=obs-bucket-dev

ObsDownloader

修改对应参数,最后返回一个图片地址,访问查看。

java 复制代码
package com.example.demo;

import com.obs.services.ObsClient;
import com.obs.services.model.*;

import java.io.File;

public class ObsDownloader {
    public static void main(String[] args) {
        // 请替换成你的 Access Key 和 Secret Key
        String accessKey = "你的 Access Key";
        String secretKey = "你的Secret Key";

        // 请替换成你的 Endpoint
        String endpoint = "你的 Endpoint";

        // 请替换成你的桶名称
        String bucketName = "你的桶名称";

        // 本地文件路径,你的文件目录包含名字
        String filePath = "D:\\111.png";

        // OBS 对象存储路径,即上传后在桶中的文件路径,包含文件名
        String objectKey = "1/iii/111.png";

        // 创建 ObsClient
        ObsClient obsClient = new ObsClient(accessKey, secretKey, endpoint);

        TemporarySignatureRequest request = new TemporarySignatureRequest(HttpMethodEnum.GET, 3600);
        //设置桶名,一般都是写在配置里,这里直接赋值即可
        request.setBucketName(bucketName);

        //这里相当于设置你上传到obs的文件路
        request.setObjectKey(objectKey);
        TemporarySignatureResponse response = obsClient.createTemporarySignature(request);
        System.out.println(response.getSignedUrl());

    }
}

ObsUploader

java 复制代码
package com.example.demo;
import com.obs.services.ObsClient;
import com.obs.services.model.PutObjectRequest;
import com.obs.services.model.PutObjectResult;
import java.io.File;

public class ObsUploader {

    public static void main(String[] args) {
        // 请替换成你的 Access Key 和 Secret Key
        String accessKey = "你的 Access Key ";
        String secretKey = "你的Secret Key";

        // 请替换成你的 Endpoint
        String endpoint = "你的 Endpoint";

        // 请替换成你的桶名称
        String bucketName = "你的桶名称";

        // 本地文件路径
        String filePath = "D:\\111.png";

        // OBS 对象存储路径,即上传后在桶中的文件路径
        String objectKey = "1/iii/111.png";

        // 创建 ObsClient
        ObsClient obsClient = new ObsClient(accessKey, secretKey, endpoint);

        // 创建 PutObjectRequest 对象,设置桶名、对象名和本地文件路径
        PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectKey, new File(filePath));

        try {
            // 执行上传
            PutObjectResult putObjectResult = obsClient.putObject(putObjectRequest);
            // 打印上传成功信息
            System.out.println("File uploaded successfully. ETag: " + putObjectResult.getEtag());
        } catch (Exception e) {
            // 打印上传失败信息
            System.err.println("File upload failed. Error: " + e.getMessage());
        }

    }
}
相关推荐
微风中的麦穗1 小时前
【MATLAB】MATLAB R2025a 详细下载安装图文指南:下一代科学计算与工程仿真平台
开发语言·matlab·开发工具·工程仿真·matlab r2025a·matlab r2025·科学计算与工程仿真
2601_949146531 小时前
C语言语音通知API示例代码:基于标准C的语音接口开发与底层调用实践
c语言·开发语言
开源技术1 小时前
Python Pillow 优化,打开和保存速度最快提高14倍
开发语言·python·pillow
学嵌入式的小杨同学1 小时前
从零打造 Linux 终端 MP3 播放器!用 C 语言实现音乐自由
linux·c语言·开发语言·前端·vscode·ci/cd·vim
毕设源码-朱学姐2 小时前
【开题答辩全过程】以 基于JavaWeb的网上家具商城设计与实现为例,包含答辩的问题和答案
java
mftang3 小时前
Python 字符串拼接成字节详解
开发语言·python
jasligea3 小时前
构建个人智能助手
开发语言·python·自然语言处理
kokunka3 小时前
【源码+注释】纯C++小游戏开发之射击小球游戏
开发语言·c++·游戏
C雨后彩虹3 小时前
CAS与其他并发方案的对比及面试常见问题
java·面试·cas·同步·异步·
云栖梦泽4 小时前
易语言开发从入门到精通:补充篇·网络编程进阶+实用爬虫开发·API集成·代理IP配置·异步请求·防封禁优化
开发语言