Java oss上傳圖片
package com.moli.common.utils; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.net.URL; import java.util.Date; import org.apache.log4j.Logger; import com.aliyun.oss.OSSClient; import com.aliyun.oss.model.Bucket; import com.aliyun.oss.model.OSSObject; import com.aliyun.oss.model.ObjectMetadata; import com.aliyun.oss.model.PutObjectResult; /** * @class:AliyunOSSClientUtil * @descript:java使用阿里雲OSS儲存物件上傳圖片 * @date:2017年3月16日 下午5:58:08 * @author wangqi */ public class AliyunOSSClientUtil { //log日誌 private static Logger logger = Logger.getLogger(AliyunOSSClientUtil.class); //阿里雲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; //初始化屬性 static{ ENDPOINT = ""; ACCESS_KEY_ID = ""; ACCESS_KEY_SECRET = ""; BACKET_NAME = ""; FOLDER = ""; } /** * 獲取阿里雲OSS客戶端物件 * @return ossClient */ public static OSSClient getOSSClient(){ return new OSSClient(ENDPOINT,ACCESS_KEY_ID, ACCESS_KEY_SECRET); } /** * 建立儲存空間 * @param ossClient OSS連線 * @param bucketName 儲存空間 * @return */ public static String createBucketName(OSSClient ossClient,String bucketName){ //儲存空間 final String bucketNames=bucketName; if(!ossClient.doesBucketExist(bucketName)){ //建立儲存空間 Bucket bucket=ossClient.createBucket(bucketName); logger.info("建立儲存空間成功"); return bucket.getName(); } return bucketNames; } /** * 刪除儲存空間buckName * @param ossClient oss物件 * @param bucketName 儲存空間 */ public static void deleteBucket(OSSClient ossClient, String bucketName){ ossClient.deleteBucket(bucketName); logger.info("刪除" + bucketName + "Bucket成功"); } /** * 建立模擬資料夾 * @param ossClient oss連線 * @param bucketName 儲存空間 * @param folder 模擬資料夾名如"qj_nanjing/" * @return 資料夾名 */ public static String createFolder(OSSClient ossClient,String bucketName,String folder){ //資料夾名 final String keySuffixWithSlash =folder; //判斷資料夾是否存在,不存在則建立 if(!ossClient.doesObjectExist(bucketName, keySuffixWithSlash)){ //建立資料夾 ossClient.putObject(bucketName, keySuffixWithSlash, new ByteArrayInputStream(new byte[0])); logger.info("建立資料夾成功"); //得到資料夾名 OSSObject object = ossClient.getObject(bucketName, keySuffixWithSlash); String fileDir=object.getKey(); return fileDir; } return keySuffixWithSlash; } /** * 根據key刪除OSS伺服器上的檔案 * @param ossClient oss連線 * @param bucketName 儲存空間 * @param folder 模擬資料夾名 如"qj_nanjing/" * @param key Bucket下的檔案的路徑名+檔名 如:"upload/cake.jpg" */ public static void deleteFile(OSSClient ossClient, String bucketName, String folder, String key){ ossClient.deleteObject(bucketName, folder + key); logger.info("刪除" + bucketName + "下的檔案" + folder + key + "成功"); } /** * 上傳圖片至OSS * @param ossClient oss連線 * @param file 上傳檔案(檔案全路徑如:D:\\image\\cake.jpg) * @param bucketName 儲存空間 * @param folder 模擬資料夾名 如"qj_nanjing/" * @return String 返回的唯一MD5數字簽名 * */ public static URL uploadObject2OSS(File file) { String bucketName = BACKET_NAME; String folder = FOLDER; URL url = null; //初始化OSSClient OSSClient ossClient=AliyunOSSClientUtil.getOSSClient(); try { //以輸入流的形式上傳檔案 InputStream is = new FileInputStream(file); String path = file.getName(); String fileName =path.substring(path.lastIndexOf("\\")+1); String type=path.substring(path.lastIndexOf(".")+1); int random = (int)(Math.random()*900)+10000; //檔名 String fileNameNew = fileName.replace(fileName, String.valueOf(System.currentTimeMillis())+String.valueOf(random)+"."+type); //檔案大小 Long fileSize = file.length(); //建立上傳Object的Metadata ObjectMetadata metadata = new ObjectMetadata(); //上傳的檔案的長度 metadata.setContentLength(is.available()); //指定該Object被下載時的網頁的快取行為 metadata.setCacheControl("no-cache"); //指定該Object下設定Header metadata.setHeader("Pragma", "no-cache"); //指定該Object被下載時的內容編碼格式 metadata.setContentEncoding("utf-8"); //檔案的MIME,定義檔案的型別及網頁編碼,決定瀏覽器將以什麼形式、什麼編碼讀取檔案。如果使用者沒有指定則根據Key或檔名的副檔名生成, //如果沒有副檔名則填預設值application/octet-stream metadata.setContentType(getContentType(fileNameNew)); //指定該Object被下載時的名稱(指示MINME使用者代理如何顯示附加的檔案,開啟或下載,及檔名稱) metadata.setContentDisposition("filename/filesize=" + fileNameNew + "/" + fileSize + "Byte."); //上傳檔案 (上傳檔案流的形式) PutObjectResult putResult = ossClient.putObject(bucketName, folder + fileNameNew, is, metadata); //解析結果 url = getUrl(ossClient,putResult.getETag()); } catch (Exception e) { e.printStackTrace(); logger.error("上傳阿里雲OSS伺服器異常." + e.getMessage(), e); } return url; } /** * 通過檔名判斷並獲取OSS服務檔案上傳時檔案的contentType * @param fileName 檔名 * @return 檔案的contentType */ public static String getContentType(String fileName){ //檔案的字尾名 String fileExtension = fileName.substring(fileName.lastIndexOf(".")); if(".bmp".equalsIgnoreCase(fileExtension)) { return "image/bmp"; } if(".gif".equalsIgnoreCase(fileExtension)) { return "image/gif"; } if(".jpeg".equalsIgnoreCase(fileExtension) || ".jpg".equalsIgnoreCase(fileExtension) || ".png".equalsIgnoreCase(fileExtension) ) { return "image/jpeg"; } if(".html".equalsIgnoreCase(fileExtension)) { return "text/html"; } if(".txt".equalsIgnoreCase(fileExtension)) { return "text/plain"; } if(".vsd".equalsIgnoreCase(fileExtension)) { return "application/vnd.visio"; } if(".ppt".equalsIgnoreCase(fileExtension) || "pptx".equalsIgnoreCase(fileExtension)) { return "application/vnd.ms-powerpoint"; } if(".doc".equalsIgnoreCase(fileExtension) || "docx".equalsIgnoreCase(fileExtension)) { return "application/msword"; } if(".xml".equalsIgnoreCase(fileExtension)) { return "text/xml"; } //預設返回型別 return "image/jpeg"; } public static URL getUrl(OSSClient ossClient,String key) { // 設定URL過期時間為10年 Date expiration = new Date(new Date().getTime() + 3600l * 1000 * 24 * 365 * 10); // 生成URL URL url = ossClient.generatePresignedUrl(BACKET_NAME, key, expiration); return url; } //測試 public static void main(String[] args) { //初始化OSSClient //上傳檔案 String files="E:\\timg.jpg"; String[] file=files.split(","); for(String filename:file){ File filess=new File(filename); URL url = AliyunOSSClientUtil.uploadObject2OSS(filess); //上傳後的檔案MD5數字唯一簽名:40F4131427068E08451D37F02021473A System.out.println(url); } } }
相關推薦
Java oss上傳圖片
package com.moli.common.utils; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.
Java專案整合阿里雲OSS上傳圖片
工具類: import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import org.slf4j.Lo
使用阿裏雲OSS,上傳圖片時報錯:java.lang.ClassNotFoundException:org.apache.http.ssl.TrustStrategy
inf dex cep 更新 ttpClient 時報 .com oss str 問題產生的原因就是jar包版本問題,阿裏的SDk引入的pom中依賴的httpclient和httpcore版本高於當前項目中已經設置的版本。 解決: 刪除低版本後,更新下項目。使用阿
Java之~ 上傳 圖片壓縮,圖片壓縮,圖片旋轉方法工具類
package com.javajy.util; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Point; import jav
Vue+Element-ui+OSS 上傳圖片
1、安裝Element-ui npm i element-ui -s 2、安裝阿里雲的OSS npm install ali-oss 3、專案使用了Element-ui裡面的上傳元件(元件程式碼來自Element-ui官網) action:檔案上傳的地址; on-
關於阿里雲oss上傳圖片之後會被旋轉90度的解決辦法
問題描述:正常的圖片前端上傳到oss成功之後的資源地址。在html上引用的時候被旋轉了90度oss資源地址直接在瀏覽器開啟就不會旋轉問題原因:某些手機拍攝出來的照片可能帶有旋轉引數(存放在照片exif資訊裡面)。而oss資源上傳之後會預設自適應方向所以在img標籤中圖片就被旋轉了90度。 解決辦法:阿里雲給
OSS上傳圖片時報錯:SSL certificate problem: unable to get local issuer certificate
php在curl的時候報此錯誤: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcur
PHP使用阿里OSS上傳圖片
//商品新增 public function cmy_add() { if (Request::instance()->isPost()) { $data = input("post.");
spring boot 整合oss 上傳圖片、檔案
前排宣告: 本文章 整合修改自https://blog.csdn.net/hcjsjqjssm/article/details/80977735 部落格 一是自己以後回顧,二希望可以幫助到使用此功能的同學,假使幫助到了你,可以點個贊,留個言,如果有不成功的 也可以留言 一起解決下
JAVA簡單上傳圖片至七牛
utils package com.example.demo.utils; import com.alibaba.fastjson.JSONObject; import com.qiniu.common.QiniuException; import com.qiniu.common.Zone; imp
java web上傳圖片時,顯示圖片
js指令碼<script> function setImagePreview() { var docObj = document.getElementById("doc"); var imgObjPreview = documen
java生成上傳圖片的縮圖
# public class ToImg { # public static void main(String[] args) throws Exception { # toSmaillImg("untitled.bmp","thumb.bm
nginx 安裝到Java程式碼上傳圖片利用ftp過程遇到的問題總結
第一次接觸伺服器的自己就是一個小白鼠,自然會遇到很多問題: 一、ftp連線不上 1.按照 https://blog.csdn.net/weixin_37525569/article/details/80839067 這篇部落格寫的步驟安裝ftp,可以
OSS上傳圖片,檔案或者其他流
1.匯入阿里雲oss的jar包,maven配置如下:<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifact
FastDFS(fdfs)遇到的坑之一,本地fastdfs-client-java開發上傳圖片報錯:java.net.SocketTimeoutException: connect timed out
前置: 我在伺服器上配置了FDFS服務, 伺服器上上傳等測試都通過了,沒問題,後來到本地開發, 用fastdfs-client-java-1.27.jar開發包來連結伺服器,上傳圖片報錯: java.net.SocketTimeoutException: connect
Android Oss 上傳圖片的使用
code小生,一個 Android 領域技術分享平臺作者:喵主子的陽光連結:https://ww
七牛雲 Java Web上傳圖片
本文由黑殼網原創 殼叔搞笑一刻 沒有對手 警官抓到正在賭博的四個人。“你們知道這是犯法的嗎?”警官向第一個人怒吼道。 “不,我只是在這裡看看。” 警官又問第二個人:“你呢?” “我是在等候巴士而已。 第三個也插嘴:“警官,我是在這裡等我
OSS上傳圖片
後臺package com.xiaohe.qd.controller; import java.io.File; import java.io.InputStream; import java.util.Random; import javax.servlet.http
Java前端上傳圖片到後臺
使用通用的SSM框架,maven構建; 簡單記錄一下前端檔案上傳到後臺的過程,免得到處找; spring-mvc.xml加入配置,這裡還可以加入檔案的編碼格式defaultEncoding屬性配置; <bean id="multipartResolver" cl
JAVA 上傳圖片至阿里OSS儲存庫
1.建立一個工具類OSSUtil.java,程式碼如下: package com.qyrj.util; import com.aliyun.oss.OSSClient; import com.aliyun.oss.model.PutObjectRequest; import java.io.By