阿里云OSS基于java使用詳解
近幾年,云圖片服務(wù)器五花八門,越來越多,有騰訊云,阿里云,又拍云,華為云等等,但是使用了這么多年,我還是感覺阿里云圖片服務(wù)器oss比較穩(wěn)定,訪問速度也比較快,因此我在這里手把手教給你如何使用阿里云oss服務(wù);
一、使用之前,我們還是先來搞清楚阿里云oss使用的原理吧:

其實調(diào)用方式也就兩種,一種是直接客戶端調(diào)用阿里云提供的服務(wù)器進行上傳,一種是通過服務(wù)器間接上傳,我們來分析以下優(yōu)缺點吧:
上傳方式優(yōu)點缺點直接調(diào)用上傳速度快,能直接快速上傳到阿里云服務(wù)器,不需要中轉(zhuǎn)可能會不安全,暴露核心配置信息間接調(diào)用安全,appkey和secret不用暴露在客戶端相對安全,速度可能會有點慢
為了安全起見,我們還是采用服務(wù)端間接上傳的方式,這種方式為了規(guī)避上傳速度,可以在阿里云服務(wù)器端進行局域網(wǎng)上傳。
二、下面我們就一起進入java版本的OSS上傳實戰(zhàn)中吧:
1.在項目中引用maven依賴,如果不是maven工程的,請自行到阿里云oss上面下載對應(yīng)的jar;
<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>2.8.3</version> </dependency>
2.封裝對應(yīng)的工具類,另外,endPoint 有兩種方式,一種為服務(wù)端通過外網(wǎng)上傳,一種為服務(wù)端通過局域網(wǎng)進行上傳,使用的過程中可以自行選擇:
public class OssUtil {
//這里的配置可以在properties或者yml中進行配置
@Value("${oss.accessKeyId}")
private String accessKeyId;
@Value("${oss.accessKeySecret}")
private String accessKeySecret;
@Value("${oss.bucketName}")
private String bucketName;
@Value("${oss.endPoint}")
private String endPoint ;
//文件直接上傳的方式,filename 為定義的文件名字
public void upload(File obj, String fileName) {
OSSClient ossClient = null;
try {
ossClient = new OSSClient(endPoint, accessKeyId, accessKeySecret);
ossClient.putObject(bucketName, fileName, obj);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (ossClient != null)
ossClient.shutdown();
}
}
//文件字節(jié)方式進行上傳,filename 為定義的文件名字
public void upload(byte[] array, String fileName) {
long start = System.currentTimeMillis();
OSSClient ossClient = null;
try {
ossClient = new OSSClient(endPoint, accessKeyId, accessKeySecret);
ossClient.putObject(bucketName, fileName, new ByteArrayInputStream(array));
} catch (Exception e) {
e.printStackTrace();
} finally {
if (ossClient != null)
ossClient.shutdown();
log.info("上傳時間:{}ms", (System.currentTimeMillis() - start));
}
}
}
到此這篇關(guān)于阿里云OSS基于java使用詳解 的文章就介紹到這了,更多相關(guān)阿里云OSS基于java內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于SpringBoot實現(xiàn)發(fā)送帶附件的郵件
這篇文章主要介紹了基于SpringBoot實現(xiàn)發(fā)送帶附件的郵件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11
使用Maven Archetype插件構(gòu)建Maven工程原型模板的實例
下面小編就為大家分享一篇使用Maven Archetype插件構(gòu)建Maven工程原型模板的實例,具有很好的參考價值,希望對大家有所幫助2017-12-12
MyBatis學(xué)習(xí)筆記(二)之關(guān)聯(lián)關(guān)系
這篇文章主要介紹了MyBatis學(xué)習(xí)筆記(二)之關(guān)聯(lián)關(guān)系 的相關(guān)資料,需要的朋友可以參考下2016-02-02
Java編程之jdk1.4,jdk1.5和jdk1.6的區(qū)別分析(經(jīng)典)
這篇文章主要介紹了Java編程之jdk1.4,jdk1.5和jdk1.6的區(qū)別分析,結(jié)合實例形式較為詳細的分析說明了jdk1.4,jdk1.5和jdk1.6版本的使用區(qū)別,需要的朋友可以參考下2015-12-12
Java游戲服務(wù)器系列之Netty相關(guān)知識總結(jié)
今天帶大家來學(xué)習(xí)Java游戲服務(wù)器的相關(guān)知識,文中對Netty作了非常詳細的介紹,對正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05
springboot使用hibernate validator校驗方式
hibernate validator提供了一套比較完善、便捷的驗證實現(xiàn)方式。下面小編給大家介紹下springboot使用hibernate validator校驗方式,感興趣的朋友一起看看吧2018-01-01
Java接口自動化測試框架設(shè)計之Get請求方法和測試詳解
這篇文章主要介紹了Java接口自動化測試框架設(shè)計 Get請求方法和測試,框架設(shè)計我們只是介紹基本的組件,而且框架設(shè)計沒有想象那么難,一步一步跟著做就會了。這篇我們來演示,如果通過Java代碼來實現(xiàn)一個用純代碼實現(xiàn)Http中的Get請求過程,需要的朋友可以參考下2019-07-07

