一:java
看某馬的培訓視頻,要用到fastdfs,配置起來挺麻煩,因而決定本身弄一個圖片服務器,由於以前作安卓項目的時候用過七牛雲的SDK感受挺okspring
,因而改用七牛雲。使用七牛雲的對象存儲,須要一個備案的域名,用來綁定存儲空間,若是隻是短期用,七牛雲卻是會提供一個30天的臨時服務器
域名。以本身的域名加一個前綴,好比media.XXX.cn以後會得到一個CNAME,而後在域名廠商的控制檯添加解析,好比我是在阿里雲買的:工具
這樣就能使用了,訪問圖片就是medis.XXX.cn/example.jpg阿里雲
二:url
接下來到後臺傳送模塊的編寫。spa
添加七牛雲依賴到pom(建議使用官方文檔推薦的版本)code
<dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>[7.2.0, 7.2.99]</version> </dependency>
因爲Spring接收文件的類型是MultipartFile,須要先轉成File文件。視頻
//File代入參數是文件路徑,能夠任意填寫,不影響上傳 File file = new File("");
//uploadFile是MultipartFile對象 uploadFile.transferTo(file); //獲得圖片的url String url = QiniuCloudUtil.upload(file, preName); //生成的文件會存在本地,我這裏選擇刪除它 file.delete();
工具以下,不復雜:對象
import java.io.File; import java.io.IOException; import com.qiniu.common.QiniuException; import com.qiniu.common.Zone; import com.qiniu.http.Response; import com.qiniu.storage.Configuration; import com.qiniu.storage.UploadManager; import com.qiniu.util.Auth; import org.springframework.util.StringUtils; /** * @author yintianhao * @createTime 07 21:07 * @description 七牛雲工具 */ public class QiniuCloudUtil { // 設置須要操做的帳號的AK和SK private static final String ACCESS_KEY = "*******"; private static final String SECRET_KEY = "*******"; // 要上傳的空間名 private static final String bucketname = "****"; // 密鑰 private static final Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); //上傳 public static String upload(File file, String key) throws IOException{ // 建立上傳對象,Zone*表明地區 Configuration configuration = new Configuration(Zone.zone2()); UploadManager uploadManager = new UploadManager(configuration); try { // 調用put方法上傳 String token = auth.uploadToken(bucketname); if(StringUtils.isEmpty(token)) { System.out.println("未獲取到token,請重試!"); return null; } print("File name = "+file.getName()); Response res = uploadManager.put(file,key,token); // 打印返回的信息 if (res.isOK()){ return key; } }catch (QiniuException e) { Response r = e.response; // 請求失敗時打印的異常的信息 e.printStackTrace(); System.out.println("error "+r.toString()); try { // 響應的文本信息 System.out.println(r.bodyString()); } catch (QiniuException e1) { System.out.println("error "+e1.error()); } } return null; } }
end。