版权声明

OssUtil工具类可以少写一些代码,挺方便的一个工具包 本作品采用知识共享署名 4.0 国际许可协议进行许可。 版权声明:本文由 低调小熊猫 发表于 低调小熊猫的博客 转载声明:自由转载-非商用-非衍生-保持署名,非商业转载请注明作者及出处,商业转载请联系作者本人qq:2696284032 文章链接:https://aodeng.cc/archives/ossutil

代码

oss配置信息,配置在properties文件里面

oss.accessKeyId = 
oss.accessKeySecret = 
oss.endpoint = 
oss.bucketName = 

OssUtil工具类代码

package com.account.web.service.common;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.InputStream;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import com.aliyun.oss.ClientConfiguration;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.GetObjectRequest;
import com.aliyun.oss.model.OSSObject;
import com.aliyun.oss.model.ObjectMetadata;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@Component
public class OssUtil {
	@Value("${oss.accessKeyId}")
	public String accessKeyId;
	
	@Value("${oss.accessKeySecret}")
	public String accessKeySecret;
	
	@Value("${oss.endpoint}")
	public String endpoint;
	
	@Value("${oss.bucketName}")
	public String bucketName;
	public static OSSClient client;
	public OSSClient initClient(){
		if(null==client){
			ClientConfiguration conf = new ClientConfiguration();
            conf.setConnectionTimeout(5000);
            conf.setMaxErrorRetry(10);
			client = new OSSClient("http://" + endpoint, accessKeyId, accessKeySecret,conf);
		}
		return client;
	}
	/**
	 * 上传文件 
	 * 
	 * @param bucketName 文件夹地址
	 * @param key 对应文件名称
	 * @param file  文件
	 * @throws FileNotFoundException
	 */
	public boolean putObjectForInputStream(String fileKey, InputStream content) {
		if (null == fileKey || "" == fileKey.trim())
			return false;
		try {
			initClient();
			ObjectMetadata meta = new ObjectMetadata();
			client.putObject(bucketName, fileKey, content, meta);
			return true;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}
	/**
	 * 下载文件 
	 * 
	 * @param bucketName 文件夹地址
	 * @param key 对应文件名称
	 * @param file  文件
	 * @throws FileNotFoundException
	 */
	public OSSObject getObjectForInputStream(String fileKey) {
		if (null == fileKey || "" == fileKey.trim())
			return null;
		try {
			if(null==client){
				initClient();
			}
			//ObjectMetadata meta = new ObjectMetadata();
			//下载OSS文件到本地文件。如果指定的本地文件存在会覆盖,不存在则新建。
			//client.putObject(bucketName, fileKey, content, meta);
			return client.getObject(bucketName, fileKey);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
	/**
	 * 上传图片
	 * @param bucketName 文件夹地址
	 * @param key 对应文件名称
	 * @param file  文件
	 * @throws FileNotFoundException
	 */
	public String putObjectForImage(String imageName, InputStream content, boolean if400) {
		if (null == imageName || "" == imageName.trim())
			return null;
		try {
			String file = "images/" + imageName.substring(0, imageName.indexOf(".")) + "/" + imageName;
			putObjectForInputStream(file,content);
			return "http://"+bucketName+"."+endpoint+"/"+file;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	
	public String getObject(String key) {
		try {
			OSSObject object = client.getObject(bucketName, key);
			InputStream objectContent = object.getObjectContent();
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			int i = -1;
			while ((i = objectContent.read()) != -1) {
				baos.write(i);
			}
			objectContent.close();
			return baos.toString("UTF-8");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
	public void clientShutdown(){
		client.shutdown();
	}


	public static void main(String[] args) {
		try {
			//String text = "<p><br/><br/>雪纺印花百褶裙半身裙,简约的线条和版型上身很好看,整体更有看点。时尚真皮女凉鞋 牛筋底中跟欧美潮鞋 2015夏个性森系女鞋子罗马鞋。</p><p><img src=\"/manager/plugins/ueditor/jsp/upload1/20160129/99731454031866641.png\"/></p>";
			//String s = OssUtil.uploadTextImg(text);
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}