1. 圖片存儲方案
1.1 介紹
在實際開發(fā)中,我們會有很多處理不同功能的服務(wù)器。例如:
應(yīng)用服務(wù)器:負責(zé)部署我們的應(yīng)用
數(shù)據(jù)庫服務(wù)器:運行我們的數(shù)據(jù)庫
文件服務(wù)器:負責(zé)存儲用戶上傳文件的服務(wù)器
分服務(wù)器處理的目的是讓服務(wù)器各司其職,從而提高我們項目的運行效率。
常見的圖片存儲方案:
方案一:使用nginx搭建圖片服務(wù)器
方案二:使用開源的分布式文件存儲系統(tǒng),例如Fastdfs、HDFS等
方案三:使用云存儲,例如阿里云、七牛云等
1.2 七牛云存儲
七牛云(隸屬于上海七牛信息技術(shù)有限公司)是國內(nèi)領(lǐng)先的以視覺智能和數(shù)據(jù)智能為核心的企業(yè)級云計算服務(wù)商,同時也是國內(nèi)知名智能視頻云服務(wù)商,累計為 70 多萬家企業(yè)提供服務(wù),覆蓋了國內(nèi)80%網(wǎng)民。圍繞富媒體場景推出了對象存儲、融合 CDN 加速、容器云、大數(shù)據(jù)平臺、深度學(xué)習(xí)平臺等產(chǎn)品、并提供一站式智能視頻云解決方案。為各行業(yè)及應(yīng)用提供可持續(xù)發(fā)展的智能視頻云生態(tài),幫助企業(yè)快速上云,創(chuàng)造更廣闊的商業(yè)價值。
官網(wǎng):七牛云 | 一站式場景化智能音視頻 APaaS
通過七牛云官網(wǎng)介紹我們可以知道其提供了多種服務(wù),我們主要使用的是七牛云提供的對象存儲服務(wù)來存儲圖片。
1.2.1 注冊、登錄
要使用七牛云的服務(wù),首先需要注冊成為會員。地址:七牛云開發(fā)者平臺
注冊完成后就可以使用剛剛注冊的郵箱和密碼登錄到七牛云:
登錄成功后點擊頁面右上角管理控制臺:
注意:登錄成功后還需要進行實名認證才能進行相關(guān)操作。
1.2.2 新建存儲空間
要進行圖片存儲,我們需要在七牛云管理控制臺新建存儲空間。點擊管理控制臺首頁對象存儲下的立即添加按鈕,頁面跳轉(zhuǎn)到新建存儲空間頁面:
可以創(chuàng)建多個存儲空間,各個存儲空間是相互獨立的。
1.2.3 查看存儲空間信息
存儲空間創(chuàng)建后,會在左側(cè)的存儲空間列表菜單中展示創(chuàng)建的存儲空間名稱,點擊存儲空間名稱可以查看當(dāng)前存儲空間的相關(guān)信息
1.2.4 開發(fā)者中心
可以通過七牛云提供的開發(fā)者中心學(xué)習(xí)如何操作七牛云服務(wù),地址:七牛開發(fā)者中心
點擊對象存儲,跳轉(zhuǎn)到對象存儲開發(fā)頁面,地址:對象存儲 - 七牛開發(fā)者中心
七牛云提供了多種方式操作對象存儲服務(wù),本項目采用Java SDK方式,地址:Java SDK_SDK 下載_對象存儲 - 七牛開發(fā)者中心
使用Java SDK操作七牛云需要導(dǎo)入如下maven坐標(biāo):
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>[7.13.0, 7.13.99]</version>
</dependency>
注: 如果GSON的包無法自動引入 需要額外手動引入
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
<scope>compile</scope>
</dependency>
1.2.5 鑒權(quán)
Java SDK的所有的功能,都需要合法的授權(quán)。授權(quán)憑證的簽算需要七牛賬號下的一對有效的Access Key和Secret Key,這對密鑰可以在七牛云管理控制臺的個人中心(七牛云開發(fā)者平臺)獲得,如下圖:
1.2.6 Java SDK操作七牛云
本章節(jié)我們就需要使用七牛云提供的Java SDK完成圖片上傳和刪除,我們可以參考官方提供的例子。
新增、刪除參考代碼如下:文章來源:http://www.zghlxwxcb.cn/news/detail-817831.html
//新增
//構(gòu)造一個帶指定 Region 對象的配置類 需要與存儲空間的地區(qū)對應(yīng)
//華東 Region.region0(), Region.huadong()
//華北 Region.region1(), Region.huabei()
//華南 Region.region2(), Region.huanan()
//北美 Region.regionNa0(), Region.beimei()
//東南亞 Region.regionAs0(), Region.xinjiapo()
Configuration cfg = new Configuration(Region.region0());
cfg.resumableUploadAPIVersion = Configuration.ResumableUploadAPIVersion.V2;// 指定分片上傳版本
UploadManager uploadManager = new UploadManager(cfg);
//...生成上傳憑證,然后準(zhǔn)備上傳
String accessKey = "your access key";
String secretKey = "your secret key";
//存儲空間名稱
String bucket = "your bucket name";
//如果是Windows情況下,格式是 D:\\qiniu\\test.png
String localFilePath = "/home/qiniu/test.png";
//默認不指定key的情況下,以文件內(nèi)容的hash值作為文件名
String key = null;
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
try {
//key值也可對應(yīng)存儲空間多級目錄
Response response = uploadManager.put(localFilePath, key, upToken);
//解析上傳成功的結(jié)果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
System.out.println(putRet.key);
System.out.println(putRet.hash);
} catch (QiniuException ex) {
ex.printStackTrace();
if (ex.response != null) {
System.err.println(ex.response);
try {
String body = ex.response.toString();
System.err.println(body);
} catch (Exception ignored) {
}
}
}
//刪除
//構(gòu)造一個帶指定 Region 對象的配置類
Configuration cfg = new Configuration(Region.region0());
String accessKey = "your access key";
String secretKey = "your secret key";
String bucket = "your bucket name";
String key = "your file key";
Auth auth = Auth.create(accessKey, secretKey);
BucketManager bucketManager = new BucketManager(auth, cfg);
try {
bucketManager.delete(bucket, key);
} catch (QiniuException ex) {
//如果遇到異常,說明刪除失敗
System.err.println(ex.code());
System.err.println(ex.response.toString());
}
本文參考傳智健康套餐圖片存儲方案。?文章來源地址http://www.zghlxwxcb.cn/news/detail-817831.html
到了這里,關(guān)于七牛云部署文件管理服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!