JAVA 阿里云的OOS文件上传和下载
在项目中,通常需要加载一些图片,js和css的静态资源,如果放在自己的服务器里面太消耗资源,而阿里云的oos是有CDN加速的,在看了oos的文档之后,写了一个工具类,贴出代码方便以后复用:
package com.weijie.core.util.aliyun;import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.CannedAccessControlList;
import com.aliyun.oss.model.GetObjectRequest;
import com.aliyun.oss.model.OSSObjectSummary;
import com.aliyun.oss.model.ObjectListing;
import com.aliyun.oss.model.ObjectMetadata;
import com.aliyun.oss.model.PutObjectResult;/*** 阿里云OSS相关java API* @author xiaoxia*øø*/
public class AliyunOssUtil {/*** 删除一个Bucket和其中的Objects * @param client* @param bucketName* @throws OSSException* @throws ClientException*/public static void deleteBucket(OSSClient client, String bucketName)throws OSSException, ClientException {ObjectListing ObjectListing = client.listObjects(bucketName);List<OSSObjectSummary> listDeletes = ObjectListing.getObjectSummaries();for (int i = 0; i < listDeletes.size(); i++) {String objectName = listDeletes.get(i).getKey();// 如果不为空,先删除bucket下的文件client.deleteObject(bucketName, objectName);}client.deleteBucket(bucketName);}/*** 把Bucket设置为所有人可读* @param client* @param bucketName* @throws OSSException* @throws ClientException*/public static void setBucketPublicReadable(OSSClient client, String bucketName)throws OSSException, ClientException {//创建bucketclient.createBucket(bucketName);//设置bucket的访问权限,public-read-write权限client.setBucketAcl(bucketName, CannedAccessControlList.PublicRead);}/*** 上传文件* @param client* @param bucketName* @param key* @param filename* @param contentType default "image/gif"* @throws OSSException* @throws ClientException* @throws FileNotFoundException*/public static String uploadFile(OSSClient client, String bucketName, String key, String filename,String contentType)throws OSSException, ClientException, FileNotFoundException {File file = new File(filename);contentType = contentType == null ? "image/gif" : contentType;ObjectMetadata objectMeta = new ObjectMetadata();objectMeta.setContentLength(file.length());objectMeta.setContentType(contentType);InputStream input = new FileInputStream(file);PutObjectResult result = client.putObject(bucketName, key, input, objectMeta);return result.getETag();}/*** 下载文件* @param client* @param bucketName* @param key* @param filename* @throws OSSException* @throws ClientException*/public static void downloadFile(OSSClient client, String bucketName, String key, String filename)throws OSSException, ClientException {client.getObject(new GetObjectRequest(bucketName, key),new File(filename));}/*** 创建一个文件夹* @param client* @param bucketName* @param folderPah*/public static void createFolder(OSSClient client,String bucketName,String folderPah){ObjectMetadata objectMeta = new ObjectMetadata();byte[] buffer = new byte[0];ByteArrayInputStream in = new ByteArrayInputStream(buffer);objectMeta.setContentLength(0);try {client.putObject(bucketName, folderPah, in, objectMeta);}catch(Exception e){e.printStackTrace();} finally {try {in.close();} catch (IOException e) {e.printStackTrace();}}}/*** 删除一个OSS文件对象* @param client* @param bucketName* @param key*/public static void deleteObject(OSSClient client, String bucketName, String key){client.deleteObject(bucketName, key);}public static void main(String[] args) {
// http://njck-dianliao.oss-cn-shanghai.aliyuncs.com/gift/crown.pngOSSClient client=new OSSClient("http://oss-cn-shanghai.aliyuncs.com", "***<>", "****<>");downloadFile(client, "njck", "gift/crown.png", "E://1.png");}
}
JAVA 阿里云的OOS文件上传和下载相关推荐
- 基于阿里云的OSS文件上传和下载
OSS概述 OSS是基于阿里云的一个云平台文件保存的系统,我们可以将服务器的文件上传至云端从而减轻服务器的压力. 初体验 首先创建一个bucket (给你的云储存器配置名字等基本信息) 生成Asses ...
- SpringBoot 系列教程(九十九):SpringBoot整合阿里云OSS实现文件上传,下载,删除功能
一.前言 之所以写这篇文章呢? 是因为最近在做文件上传时遇到一个问题,就是我们在以前使用传统Spring+SpringMVC+Mybatis框架开发Web项目的时候,都是将项目打包生成一个War包,然 ...
- Nginx的安装基础配置(windows、linux)以及搭建图片服务器(windows、阿里云),文件上传
Nginx的安装基础配置(windows.linux)以及搭建图片服务器(windows.阿里云),文件上传 本文目录 文章目录 Nginx的安装基础配置(windows.linux)以及搭建图片服务 ...
- 使用阿里云OSS实现文件上传
概述场景 文件上传,是程序开发中必须会使用到的一个功能,比如: 添加商品,用户头像,文章封面等需求 富文本编辑(插件文件上传) 文件上传的原理是什么? 我们为什么要实现文件上传,其实就要共享资源,大家 ...
- java spring文件下载_SpringMVC实现文件上传和下载的工具类
本文主要目的是记录自己基于SpringMVC实现的文件上传和下载的工具类的编写,代码经过测试可以直接运行在以后的项目中. 开发的主要思路是对上传和下载文件进行抽象,把上传和下载的核心功能抽取出来分装成 ...
- java上传文件到Oracle_用java实现ORACLE数据库的文件上传、下载
文件上传使用: 的 UploadBean JAVA包,他的文件上传做的还不错,可进行目录或数据库的文件上传,默认使用的是ORACLE 的LONGRAW子段类型,可使用BLOB类型,但需要使用扩展JAV ...
- 阿里云 oss服务器文件上传 java
前天做oss服务器文件上传,之前没了解过,做的过程中遇到许多问题,最终通过查阅相关资料解决了,特分享一下. 首先准备工作 必要的jar 这里注意版本一致,不然就会报很多坑爹的错误.. 如果你断点调试在 ...
- 阿里云 oss多文件上传
平时在做 oss 上传时,通过都是单个文件上传,但是前几天工作时涉及到多个文件的上传,在所有文件都上传完成后才能再做后续的代码执行.于是在原有的oss上传基础上添加for循环去挨个上传. 介绍一下,o ...
- 阿里云接口----OSS文件上传
先是,拿到OSS相关的两个秘钥和文件桶(bucket). 代码块为自己项目中的代码(springboot单体项目). 阿里云控制台登录,搜索OSS,创建自己的bucket. 进入AccessKey管理 ...
最新文章
- Linux系统基础优化
- 全卷积网络的理解——理解论文Fully Convolutional Networks for Semantic Segmentation
- 安装ubuntu系统步骤
- 「递归」第5集 | 从网瘾少年到极客大神:没有什么是一段代码解决不了的
- vue-cli 将被 create-vue 替代?初始化基于 vite 的 vue3 项目为何如此简单?
- python join函数_Python join()函数
- raspberry pi3_我们将赠送Raspberry Pi 3 Ultimate Starter Kit
- C语言实现2048小游戏
- bzoj2783: [JLOI2012]树
- 关于投资收益和风险的例题(线性规划)
- Java实现智能对话机器人自动聊天+语音秒回
- 基于CNN的人脸相似度检测
- Android播放音频到耳机,android插入耳机状态使用扬声器外放音乐
- excel表格如何画斜线并写字
- 基因组所三代单分子测序PacBio完成技术升级—超长读长助力基因组学研究
- Linux rescue
- vue 将echarts的图片导出成pdf文件
- 一、响应式编程基本介绍
- 第1章 Java基本概念及环境配置——FAQ1.05 Java SE. Java EE和Java ME有什么区别?
- 中国无尘室饮水机市场趋势报告、技术动态创新及市场预测