在项目中,通常需要加载一些图片,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文件上传和下载相关推荐

  1. 基于阿里云的OSS文件上传和下载

    OSS概述 OSS是基于阿里云的一个云平台文件保存的系统,我们可以将服务器的文件上传至云端从而减轻服务器的压力. 初体验 首先创建一个bucket (给你的云储存器配置名字等基本信息) 生成Asses ...

  2. SpringBoot 系列教程(九十九):SpringBoot整合阿里云OSS实现文件上传,下载,删除功能

    一.前言 之所以写这篇文章呢? 是因为最近在做文件上传时遇到一个问题,就是我们在以前使用传统Spring+SpringMVC+Mybatis框架开发Web项目的时候,都是将项目打包生成一个War包,然 ...

  3. Nginx的安装基础配置(windows、linux)以及搭建图片服务器(windows、阿里云),文件上传

    Nginx的安装基础配置(windows.linux)以及搭建图片服务器(windows.阿里云),文件上传 本文目录 文章目录 Nginx的安装基础配置(windows.linux)以及搭建图片服务 ...

  4. 使用阿里云OSS实现文件上传

    概述场景 文件上传,是程序开发中必须会使用到的一个功能,比如: 添加商品,用户头像,文章封面等需求 富文本编辑(插件文件上传) 文件上传的原理是什么? 我们为什么要实现文件上传,其实就要共享资源,大家 ...

  5. java spring文件下载_SpringMVC实现文件上传和下载的工具类

    本文主要目的是记录自己基于SpringMVC实现的文件上传和下载的工具类的编写,代码经过测试可以直接运行在以后的项目中. 开发的主要思路是对上传和下载文件进行抽象,把上传和下载的核心功能抽取出来分装成 ...

  6. java上传文件到Oracle_用java实现ORACLE数据库的文件上传、下载

    文件上传使用: 的 UploadBean JAVA包,他的文件上传做的还不错,可进行目录或数据库的文件上传,默认使用的是ORACLE 的LONGRAW子段类型,可使用BLOB类型,但需要使用扩展JAV ...

  7. 阿里云 oss服务器文件上传 java

    前天做oss服务器文件上传,之前没了解过,做的过程中遇到许多问题,最终通过查阅相关资料解决了,特分享一下. 首先准备工作 必要的jar 这里注意版本一致,不然就会报很多坑爹的错误.. 如果你断点调试在 ...

  8. 阿里云 oss多文件上传

    平时在做 oss 上传时,通过都是单个文件上传,但是前几天工作时涉及到多个文件的上传,在所有文件都上传完成后才能再做后续的代码执行.于是在原有的oss上传基础上添加for循环去挨个上传. 介绍一下,o ...

  9. 阿里云接口----OSS文件上传

    先是,拿到OSS相关的两个秘钥和文件桶(bucket). 代码块为自己项目中的代码(springboot单体项目). 阿里云控制台登录,搜索OSS,创建自己的bucket. 进入AccessKey管理 ...

最新文章

  1. Linux系统基础优化
  2. 全卷积网络的理解——理解论文Fully Convolutional Networks for Semantic Segmentation
  3. 安装ubuntu系统步骤
  4. 「递归」第5集 | 从网瘾少年到极客大神:没有什么是一段代码解决不了的
  5. vue-cli 将被 create-vue 替代?初始化基于 vite 的 vue3 项目为何如此简单?
  6. python join函数_Python join()函数
  7. raspberry pi3_我们将赠送Raspberry Pi 3 Ultimate Starter Kit
  8. C语言实现2048小游戏
  9. bzoj2783: [JLOI2012]树
  10. 关于投资收益和风险的例题(线性规划)
  11. Java实现智能对话机器人自动聊天+语音秒回
  12. 基于CNN的人脸相似度检测
  13. Android播放音频到耳机,android插入耳机状态使用扬声器外放音乐
  14. excel表格如何画斜线并写字
  15. 基因组所三代单分子测序PacBio完成技术升级—超长读长助力基因组学研究
  16. Linux rescue
  17. vue 将echarts的图片导出成pdf文件
  18. 一、响应式编程基本介绍
  19. 第1章 Java基本概念及环境配置——FAQ1.05 Java SE. Java EE和Java ME有什么区别?
  20. 中国无尘室饮水机市场趋势报告、技术动态创新及市场预测

热门文章

  1. H5项目适配系统深色模式方案
  2. 不做你咖啡杯里的半块糖
  3. 工业相机接口和采集卡
  4. 卷积神经网络实现数字识别
  5. Python解析wireshark所捕获的数据报
  6. 使用wireshark抓取手机的rtmp推流包
  7. 中标麒麟安装达梦数据库DM8
  8. 小白借助视频云平台搭建企业级连锁监控平台
  9. iis 自定义字体 woff
  10. 数学知识——矩阵乘法