[服务器图片上传demo]

目录

前言:         

Java 实现华为云服务器图片上传和下载的示例代码:

图片下载

Java 实现阿里云服务器图片上传和下载的示例代码:

图片下载

Java 实现腾讯云服务器图片上传和下载的示例代码:

图片下载

依赖:


前言:         

         记录一下小笔记

Java 实现华为云服务器图片上传和下载的示例代码:

public void uploadFile(String filePath, String objectName) {
    // 构造华为云的身份认证信息
    String ak = "你的Access Key ID";
    String sk = "你的Secret Access Key";
    String projectId = "你的项目ID";
    String regionName = "cn-north-4";
    BasicCredentials auth = new BasicCredentials(ak, sk, projectId, regionName);

    // 构造OBS客户端实例
    OBSClient obsClient = new OBSClient(auth);

    // 构造上传请求
    PutObjectRequest request = new PutObjectRequest();
    request.setBucketName("你的Bucket名称");
    request.setObjectKey(objectName); // 指定对象名称
    request.setFile(new File(filePath)); // 指定上传文件的路径

    // 执行上传操作
    PutObjectResult result = obsClient.putObject(request);
    System.out.println("上传成功!");
}
  • 示例代码中,需要替换掉的参数包括:Access Key IDSecret Access Key项目IDcn-north-4Bucket名称上传文件的路径指定对象名称。其中,指定对象名称是你在上传文件时指定的对象名称,需要确保它在当前 Bucket 中是唯一的。

图片下载

public void downloadFile(String objectName, String targetFilePath) {
    // 构造华为云的身份认证信息
    String ak = "你的Access Key ID";
    String sk = "你的Secret Access Key";
    String projectId = "你的项目ID";
    String regionName = "cn-north-4";
    BasicCredentials auth = new BasicCredentials(ak, sk, projectId, regionName);

    // 构造OBS客户端实例
    OBSClient obsClient = new OBSClient(auth);

    // 构造下载请求
    GetObjectRequest request = new GetObjectRequest();
    request.setBucketName("你的Bucket名称");
    request.setObjectKey(objectName); // 指定对象名称

    // 执行下载操作
    try (OBSObject obsObject = obsClient.getObject(request)) {
        InputStream inputStream = obsObject.getObjectContent(); // 获取文件输入流
        FileOutputStream outputStream = new FileOutputStream(targetFilePath); // 指定下载文件的路径
        byte[] buffer = new byte[1024];
        int length;
        while ((length = inputStream.read(buffer)) > 0) {
            outputStream.write(buffer, 0, length);
        }
        outputStream.close();
        System.out.println("下载成功!");
    } catch (IOException e) {
        e.printStackTrace();
    }
}

  • 示例代码中,需要替换掉的参数包括:Access Key IDSecret Access Key项目IDcn-north-4Bucket名称指定对象名称下载文件的路径。其中,指定对象名称是你要下载的对象名称,下载文件的路径是你要保存文件的本地路径。
  • 注意,在执行完下载操作后,需要手动关闭文件输入流和文件输出流,避免内存泄漏

Java 实现阿里云服务器图片上传和下载的示例代码:

public void uploadFile(String filePath, String objectName) {
    // 构造阿里云的身份认证信息
    String accessKeyId = "你的Access Key ID";
    String accessKeySecret = "你的Access Key Secret";
    String endpoint = "你的OSS Endpoint";
    OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

    // 构造上传请求
    PutObjectRequest request = new PutObjectRequest("你的Bucket名称", objectName, new File(filePath));

    // 执行上传操作
    ossClient.putObject(request);
    System.out.println("上传成功!");

    // 关闭OSS客户端
    ossClient.shutdown();
}
  • 在这个示例代码中,需要替换掉的参数包括:Access Key IDAccess Key SecretOSS EndpointBucket名称上传文件的路径指定对象名称。其中,指定对象名称是你在上传文件时指定的对象名称,需要确保它在当前 Bucket 中是唯一的。

图片下载

public void downloadFile(String objectName, String targetFilePath) {
    // 构造阿里云的身份认证信息
    String accessKeyId = "你的Access Key ID";
    String accessKeySecret = "你的Access Key Secret";
    String endpoint = "你的OSS Endpoint";
    OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

    // 构造下载请求
    GetObjectRequest request = new GetObjectRequest("你的Bucket名称", objectName);

    // 执行下载操作
    try (OSSObject ossObject = ossClient.getObject(request)) {
        InputStream inputStream = ossObject.getObjectContent(); // 获取文件输入流
        FileOutputStream outputStream = new FileOutputStream(targetFilePath); // 指定下载文件的路径
        byte[] buffer = new byte[1024];
        int length;
        while ((length = inputStream.read(buffer)) > 0) {
            outputStream.write(buffer, 0, length);
        }
        outputStream.close();
        System.out.println("下载成功!");
    } catch (IOException e) {
        e.printStackTrace();
    }

    // 关闭OSS客户端
    ossClient.shutdown();
}
  • 示例代码中,需要替换掉的参数包括:Access Key IDAccess Key SecretOSS EndpointBucket名称指定对象名称下载文件的路径。其中,指定对象名称是你要下载的对象名称,下载文件的路径是你要保存文件的本地路径。
  • 注意,在执行完下载操作后,需要手动关闭文件输入流和文件输出流,避免内存泄漏。

Java 实现腾讯云服务器图片上传和下载的示例代码:

public void uploadFile(String filePath, String objectName) {
    // 构造腾讯云的身份认证信息
    String secretId = "你的Secret ID";
    String secretKey = "你的Secret Key";
    String region = "ap-guangzhou";
    COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
    ClientConfig clientConfig = new ClientConfig(new Region(region));
    COSClient cosClient = new COSClient(cred, clientConfig);

    // 构造上传请求
    File localFile = new File(filePath);
    PutObjectRequest request = new PutObjectRequest("你的Bucket名称", objectName, localFile);

    // 执行上传操作
    cosClient.putObject(request);
    System.out.println("上传成功!");

    // 关闭COS客户端
    cosClient.shutdown();
}
  • 示例代码中,需要替换掉的参数包括:Secret IDSecret Keyap-guangzhouBucket名称上传文件的路径指定对象名称。其中,指定对象名称是你在上传文件时指定的对象名称,需要确保它在当前 Bucket 中是唯一的。

图片下载

public void downloadFile(String objectName, String targetFilePath) {
    // 构造腾讯云的身份认证信息
    String secretId = "你的Secret ID";
    String secretKey = "你的Secret Key";
    String region = "ap-guangzhou";
    COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
    ClientConfig clientConfig = new ClientConfig(new Region(region));
    COSClient cosClient = new COSClient(cred, clientConfig);

    // 构造下载请求
    GetObjectRequest request = new GetObjectRequest("你的Bucket名称", objectName);

    // 执行下载操作
    COSObject cosObject = cosClient.getObject(request);
    InputStream inputStream = cosObject.getObjectContent(); // 获取文件输入流
    try (FileOutputStream outputStream = new FileOutputStream(targetFilePath)) { // 指定下载文件的路径
        byte[] buffer = new byte[1024];
        int length;
        while ((length = inputStream.read(buffer)) > 0) {
            outputStream.write(buffer, 0, length);
        }
        System.out.println("下载成功!");
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 关闭COS客户端
    cosClient.shutdown();
}
  • 示例代码中,需要替换掉的参数包括:Secret IDSecret Keyap-guangzhouBucket名称指定对象名称下载文件的路径。其中,指定对象名称是你要下载的对象名称,下载文件的路径是你要保存文件的本地路径。
  • 注意,在执行完下载操作后,需要手动关闭文件输入流和文件输出流,避免内存泄漏。

依赖:

阿里云 OSS 提供了 OSS SDK for Java,可以通过以下 Maven 依赖添加到项目中:

<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.10.2</version>
</dependency>
腾讯云 COS 提供了 COS SDK for Java,可以通过以下 Maven 依赖添加到项目中:

<dependency>
    <groupId>com.qcloud</groupId>
    <artifactId>cos_api</artifactId>
    <version>5.6.5</version>
</dependency>
华为云 OBS 提供了 OBS SDK for Java,可以通过以下 Maven 依赖添加到项目中:

<dependency>
    <groupId>com.obs</groupId>
    <artifactId>obs</artifactId>
    <version>3.20.3</version>
</dependency>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/26727.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【利用AI让知识体系化】7种结构型模式

文章目录 结构型模式简介适配器模式装饰器模式代理模式外观模式桥接模式组合模式享元模式 结构型模式 简介 在设计模式中&#xff0c;结构型模式用于描述如何将对象和类组装成较大的结构&#xff0c;并灵活地处理对象之间的关系。 结构型模式包括以下几种&#xff1a; 适配器…

opencv 图像识别

opencv的目标是使计算机可以快速准确地从数字图像中提取和分析特征。它使用了许多新的算法和技术&#xff0c;例如改进的模板匹配、基于统计的特征分析以及深度学习等。opencv支持多种平台&#xff0c;包括 Windows、 MacOS、 Linux和 Android&#xff0c;开发者可以使用 OpenC…

浏览器相关前端开发事项

文章目录 存储浏览器持久化存储&#xff08;F12->应用->存储&#xff09;浏览器缓存&#xff08;F12->内存&#xff09;浏览器存储管理单位&#xff08;域名/IP为单位&#xff09;区别localStorage VS 浏览器缓存localStorage VS cookies 存储 浏览器持久化存储&…

【CORS策略: Multiple CORS header ‘Access-Control-Allow-Origin‘ not allowed导致的跨域问题】

引起跨域CORS报错的原因有很多种&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 这里我的报错属于最后一条。 探索的原因 正常axios请求接口&#xff0c;调试接口时出现以下问题 Access to XMLHttpRequest at http://192.168.31.111:9000/api/user/sessio…

皮卡丘../../(目录遍历)/敏感信息泄露/PHP反序列化

一.目录遍历 1.概述 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量&#xff0c;从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时&#xff0c;便会将请求的这个文件的值(比如文件名称)传递到后台&#xff0c;后台再执行其对应的文件。 在这个过程中…

【MySQL数据库 | 第四篇】SQL通用语法及分类

目录 &#x1f914;SQL通用语法&#xff1a; &#x1f60a;语句&#xff1a; &#x1f60a;注释&#xff1a; &#x1f914;SQL语句分类&#xff1a; &#x1f60a;1.DDL语句&#xff1a; &#x1f60a;2.DML语句&#xff1a; &#x1f60a;3.DQL语言&#xff1a; &…

C++STL库之map

文章目录 关于仿函数stackdeque&#xff08;双端对列&#xff09;queuepriority_queuemap(重点)set(去重) 关于仿函数 //C不能重载的运算符sizeof、 ::、 ? :、 .、 *、 class Add { public:int operator()(int a, int b)const{return a b;} }; //函数对象&#xff0c;仿函数…

2022年长三角高校数学建模竞赛C题隧道的升级改造与设计解题全过程文档及程序

2022年长三角高校数学建模竞赛 C题 隧道的升级改造与设计 原题再现&#xff1a; 某地现存一旧式双洞隧道&#xff0c;现计划将该隧道在旧貌基础上升级改造。在升级改造前&#xff0c;需进行定标与设计。考虑到该隧道洞壁附着特殊涂料&#xff0c;无人机在洞内通信信号较差&am…

LIBEVENT 框架

LIBEVENT 框架 LAMPlibevent特点:libevent的功能libevent官网安装步骤Linux下libevent主要API介绍libevent使用步骤libevent 编程案例LAMP 从LAMP说起: 是一个缩写,它指一组通常一起使用来运行动态网站或者服务器的自由软件 Linux - 操作系统Apache - 网页服务器MySQL - 数据…

基于Yolov5目标检测的物体分类识别及定位(一) -- 数据集原图获取与标注

从本篇博客正式开始深度学习项目的记录&#xff0c;实例代码只会放通用的代码&#xff0c;数据集和训练数据也是不会全部放出。 系列文章&#xff1a; 基于Yolov5目标检测的物体分类识别及定位&#xff08;一&#xff09; -- 数据集原图获取与标注 基于Yolov5目标检测的物体分类…

Data Distillation: A Survey

本文是蒸馏学习综述系列的第二篇文章&#xff0c;Data Distillation: A Survey的一个翻译 数据蒸馏&#xff1a;综述 摘要1 引言2 数据蒸馏框架2.1 元模型匹配的数据蒸馏2.2 梯度匹配的数据蒸馏2.3 轨迹匹配的数据蒸馏2.4 分布匹配的数据蒸馏2.5 因式分解的数据蒸馏 3 数据模态…

python中Requests发送json格式的post请求方法

问题&#xff1a;做requests请求时遇到如下报错&#xff1a; {“code”:“500”,“message”:"JSON parse error: Cannot construct instance of com.bang.erpapplication.domain.User (although at least one Creator exists): no String-argument constructor/factory …

16.2:岛屿数量问题

文章目录 岛屿数量问题方法一&#xff1a;采用递归的方法方法二&#xff1a;使用并查集的方法&#xff08;map&#xff09;方法三&#xff1a;使用并查集的方法&#xff08;数组&#xff09; 岛屿数量问题 测试链接&#xff1a;https://leetcode.com/problems/number-of-islan…

C++ string类-2

at at 函数是在C还没有支持运算符重载的时候提供的。 他可以像 [] 重载运算符一样&#xff0c;找到某个位置的字符&#xff1a; string s1("hello world");s1.at(0) x;cout << s1 << endl; 输出&#xff1a; [] 重载运算符和 at&#xff08;&#x…

8自由度并联腿机器狗实现行走功能

1. 功能说明 本文示例将实现R309a样机8自由度并联腿机器狗行走的功能。 2. 并联仿生机器人结构设计 机器狗是一种典型的并联仿生四足机器人&#xff0c;其腿部结构主要模仿了四足哺乳动物的腿部结构&#xff0c;主要由腿部的节段和旋转关节组成。在设计机器狗的腿部结构时&…

echart实现地图展示

最近做的页面中需要展示省级地图精确到市级且悬浮到地区上时会显示一些信息 然后参考了网址&#xff1a; “绿色金融” - 江西省 - category-work,geo地理坐标,legend,series-map地图,series-scatter散点图,title标题,tooltip提示框,visualMap视觉映射 - makeapie echarts社区…

【玩转Linux操作】硬链接和软连接

&#x1f38a;专栏【玩转Linux操作】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【Counting Stars 】 欢迎并且感谢大家指出小吉的问题&#x1f970; 欢迎大家访问“在下小吉.”&#xff08;偷偷告诉你这个是我的大号哦&#…

yolov8seg模型转onnx转ncnn

yolov8是yolo的最新版本&#xff0c;可做图像分类&#xff0c;目标检测&#xff0c;实例分割&#xff0c;姿态估计。 主页地址 这里测试一个分割模型。 模型如下 选yolov8n-seg模型&#xff0c;转成onnx&#xff0c;再转ncnn测试。 yolov8s-seg的ncnn版可以直接用这个 如果用…

【Django 网页Web开发】07. 快捷的表单生成 Form与MoudleForm(保姆级图文)

目录 注意 正规写法是 ModelForm&#xff0c;下面文章我多实现效果url.py新建3个html文件数据库连接model.py 数据表1. 原始方法view.pytestOrgion.html 2. Form方法view.pytestForm.html 3. MoudleForm方法给字段设置样式面向对象的思路&#xff0c;批量添加样式错误信息的显示…

搜索算法(三) 回溯法

1.回溯法 回溯法可以理解成一种特殊的深度优先算法&#xff0c;比起普通的DFS&#xff0c;多了还原当前节点的一步。 修改当前节点、递归子节点、还原当前节点。 本质是一种试错的思想。 维基百科&#xff1a; 2.例题 1&#xff09; 力扣https://leetcode.cn/problems/pe…
最新文章