当前位置: 首页 > news >正文

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

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

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

pom.xm

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

<?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

# 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

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

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 KeyString accessKey = "你的 Access Key";String secretKey = "你的Secret Key";// 请替换成你的 EndpointString endpoint = "你的 Endpoint";// 请替换成你的桶名称String bucketName = "你的桶名称";// 本地文件路径,你的文件目录包含名字String filePath = "D:\\111.png";// OBS 对象存储路径,即上传后在桶中的文件路径,包含文件名String objectKey = "1/iii/111.png";// 创建 ObsClientObsClient 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

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 KeyString accessKey = "你的 Access Key ";String secretKey = "你的Secret Key";// 请替换成你的 EndpointString endpoint = "你的 Endpoint";// 请替换成你的桶名称String bucketName = "你的桶名称";// 本地文件路径String filePath = "D:\\111.png";// OBS 对象存储路径,即上传后在桶中的文件路径String objectKey = "1/iii/111.png";// 创建 ObsClientObsClient 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());}}
}

相关文章:

  • vue3父组件提交校验多个子组件
  • Python通过selenium调用IE11浏览器报错解决方法
  • 网络知识学习(笔记二)
  • KaiwuDB 监控组件及辅助 SQL 调优介绍
  • 04.webpack中css的压缩和抽离
  • 数据结构【栈】
  • Boost获取当前时间并格式化为字符串
  • 宏集新闻 | 虹科传感器事业部正式更名为宏集科技
  • 虚拟摇杆OnJoystickMove未被调用,角色不移动
  • PaddleDetection训练目标检测模型
  • 科技的成就(五十三)
  • Vatee万腾外汇市场新力量:vatee科技决策力
  • 蓝桥杯算法双周赛心得——迷宫逃脱(记忆化搜索)
  • 13、深度学习之神经网络
  • 在Jupyter Lab中使用多个环境,及魔法命令简介
  • $translatePartialLoader加载失败及解决方式
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • centos安装java运行环境jdk+tomcat
  • es6
  • Hibernate【inverse和cascade属性】知识要点
  • HTTP 简介
  • Markdown 语法简单说明
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Selenium实战教程系列(二)---元素定位
  • Shadow DOM 内部构造及如何构建独立组件
  • Spark学习笔记之相关记录
  • vue中实现单选
  • 仿天猫超市收藏抛物线动画工具库
  • 前端设计模式
  • 微信公众号开发小记——5.python微信红包
  • 怎样选择前端框架
  • 主流的CSS水平和垂直居中技术大全
  • 阿里云移动端播放器高级功能介绍
  • ​决定德拉瓦州地区版图的关键历史事件
  • #14vue3生成表单并跳转到外部地址的方式
  • (145)光线追踪距离场柔和阴影
  • (3)llvm ir转换过程
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (javascript)再说document.body.scrollTop的使用问题
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (ros//EnvironmentVariables)ros环境变量
  • (二)c52学习之旅-简单了解单片机
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .Net7 环境安装配置
  • .NET开发人员必知的八个网站
  • .net中的Queue和Stack
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现
  • [2021 蓝帽杯] One Pointer PHP
  • [2023年]-hadoop面试真题(一)
  • [Angularjs]asp.net mvc+angularjs+web api单页应用之CRUD操作
  • [AUTOSAR][诊断管理][ECU][$37] 请求退出传输。终止数据传输的(上传/下载)
  • [AutoSAR系列] 1.3 AutoSar 架构
  • [BZOJ4554][TJOI2016HEOI2016]游戏(匈牙利)