Java图片文件上传阿里云OSS服务器

/**
 * 
 */
package com.jit.comic.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.nio.file.Files;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

import org.apache.commons.fileupload.disk.DiskFileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.IOUtils;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.OSSObject;
import com.aliyun.oss.model.ObjectMetadata;
import com.aliyun.oss.model.PutObjectResult;

/**
 * @author suewong
 * 下午4:15:26
 * @param
 *since 1.0
 */
public class ImageUpload {

  //阿里云API的内或外网域名  
    private static String ENDPOINT;  
    //阿里云API的密钥Access Key ID  
    private static String ACCESS_KEY_ID;  
    //阿里云API的密钥Access Key Secret  
    private static String ACCESS_KEY_SECRET;  
    //阿里云API的bucket名称  
    private static String BACKET_NAME;  
    //阿里云API的文件夹名称  
   // private static String FOLDER;  
	private static String accessUrl;
    
    static{  
        ENDPOINT = "oss-cn-shanghai.aliyuncs.com";  
        ACCESS_KEY_ID = "***************";  //自己的密钥
        ACCESS_KEY_SECRET = "************";  
        BACKET_NAME = "cosimage";  
        accessUrl = "http://lxkcapp.oss-cn-shanghai.aliyuncs.com";  
    }  
	public boolean imageUpload(MultipartFile file) throws Exception{
		String filename=UUID.randomUUID().toString().replaceAll("-", "");
		System.out.println(filename);
		Long fileSize=file.getSize();
		//创建上传object的metadata
		ObjectMetadata metadata=new ObjectMetadata();
		metadata.setContentLength(file.getInputStream().available());
		metadata.setCacheControl("no-cache");
		metadata.setHeader("Pragma", "no-cache");
		metadata.setContentEncoding("utf-8");
		metadata.setContentType(file.getContentType());
		metadata.setContentDisposition("filename/filesize="+filename+"/"+fileSize+"Byte.");
		//上传文件
		OSSClient client= new OSSClient(ENDPOINT,ACCESS_KEY_ID, ACCESS_KEY_SECRET);  
		PutObjectResult putresult=client.putObject("cosimage",filename, file.getInputStream(),metadata);	
		System.out.println(putresult.getETag());
		Date expiration = new Date(new Date().getTime() + 3600 * 1000);
		URL url=client.generatePresignedUrl("cosimage", filename, expiration);
		System.out.println(url.toString());		
		return true;
	}
	
	
	
	//获取图片路径
	public String getImageURL(String key){
		 OSSClient client= new OSSClient(ENDPOINT,ACCESS_KEY_ID, ACCESS_KEY_SECRET);  
		 OSSObject ossObj = client.getObject("cosimage", key); 
		 Date expiration = new Date(new Date().getTime() + 3600 * 1000);
		 URL url=client.generatePresignedUrl("cosimage", key, expiration);
		 return url.toString();
	}
	
}

参考博客


猜你喜欢

转载自blog.csdn.net/doudou0809/article/details/78191199