阿里雲oss上傳下載刪除

package com.hengtong.metro.jlact.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Date;

import com.aliyun.oss.HttpMethod;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.GeneratePresignedUrlRequest;
import com.aliyun.oss.model.OSSObject;
import com.aliyun.oss.model.PutObjectResult;

/**
 * 阿里雲oss操作工具類
 * 
 * @author admin
 *
 */
public class AliyunOSSUtils {

	public final static String ENDPOINT = "oss-cn-beijing.aliyuncs.com";//地址
	public final static String ACCESS_KEY_ID = "****";   //阿里雲密鑰 在密鑰管理中
	public final static String ACCESS_KEY_SECRET = "****";//阿里雲密鑰 在密鑰管理中
	public final static String BUCKET_NAME = "****";   //平臺文件夾地址

	/**
	 * 開啓oss client
	 * 
	 * @return
	 */
	public static OSSClient getOSSClient() {
		OSSClient ossClient = new OSSClient(ENDPOINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET);
		return ossClient;
	}

	/**
	 * 關閉oss client
	 * 
	 * @param ossClient
	 */
	public static void closeOSSClient(OSSClient ossClient) {
		ossClient.shutdown();
	}

	/**
	 * 上傳文件到oss
	 */
	public static String upload(InputStream inputStream, String filename) {
		OSSClient ossClient = getOSSClient();
		PutObjectResult result = ossClient.putObject(BUCKET_NAME, filename, inputStream);
		String etag = result.getETag();
		System.out.println(etag);
		// 設置URL過期時間爲10年 3600l* 1000*24*365*10
		Date expiration = new Date(System.currentTimeMillis() + 3600L * 1000 * 24 * 365 * 10);
		GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(BUCKET_NAME, filename, HttpMethod.GET);
		request.setExpiration(expiration);
		// 獲取URL(HTTP GET請求)。
		URL signedUrl = ossClient.generatePresignedUrl(request);
		// 文件路徑,放到瀏覽器可直接下載
		String url = signedUrl.getHost() + signedUrl.getPath();
		closeOSSClient(ossClient);
		return url;

	}

	/**
	 * 下載文件(返回流) filename 需要下載的文件名稱
	 */
	public static InputStream download(String filename) {
		OSSClient ossClient = getOSSClient();
		InputStream content = null;
		try {
			//OSSObject ossObj = ossClient.getObject(new GetObjectRequest(BUCKET_NAME, filename));
			OSSObject ossObj = ossClient.getObject(BUCKET_NAME, filename);
			content = ossObj.getObjectContent();
			return content;
		} catch (Exception e) {
			e.printStackTrace();
			throw e;
		}finally {
			//closeOSSClient(ossClient);
		}
		

	}

	/**
	 * 刪除文件
	 */
	public static void delete(String filename) {
		OSSClient ossClient = getOSSClient();
		ossClient.deleteObject(BUCKET_NAME, filename);
		closeOSSClient(ossClient);
	}
	
	public static void main(String[] args) throws IOException {
//		File file = new File("C:\\Users\\admin\\Desktop\\123.jpg");
//		InputStream is = new FileInputStream(file);
//		upload(is,"12345");
		
//		delete("12345");
		
		InputStream content = download("12345");
		int index;
        byte[] bytes = new byte[1024];
        FileOutputStream downloadFile = new FileOutputStream("C:\\Users\\admin\\Desktop\\12356.jpg");
        while ((index = content.read(bytes)) != -1) {
            downloadFile.write(bytes, 0, index);
            downloadFile.flush();
        }
        downloadFile.close();
        content.close();
		
		
//		InputStream in = download("2ed4cb7216744f84a0269b842455fd37.zip");
//		System.out.println(in.available());
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章