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

其實(shí)調(diào)用方式也就兩種,一種是直接客戶端調(diào)用阿里云提供的服務(wù)器進(jìn)行上傳,一種是通過服務(wù)器間接上傳,我們來分析以下優(yōu)缺點(diǎn)吧:
上傳方式優(yōu)點(diǎn)缺點(diǎn)直接調(diào)用上傳速度快,能直接快速上傳到阿里云服務(wù)器,不需要中轉(zhuǎn)可能會(huì)不安全,暴露核心配置信息間接調(diào)用安全,appkey和secret不用暴露在客戶端相對(duì)安全,速度可能會(huì)有點(diǎn)慢
為了安全起見,我們還是采用服務(wù)端間接上傳的方式,這種方式為了規(guī)避上傳速度,可以在阿里云服務(wù)器端進(jìn)行局域網(wǎng)上傳。
二、下面我們就一起進(jìn)入java版本的OSS上傳實(shí)戰(zhàn)中吧:
1.在項(xiàng)目中引用maven依賴,如果不是maven工程的,請(qǐng)自行到阿里云oss上面下載對(duì)應(yīng)的jar;
<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>2.8.3</version> </dependency>
2.封裝對(duì)應(yīng)的工具類,另外,endPoint 有兩種方式,一種為服務(wù)端通過外網(wǎng)上傳,一種為服務(wù)端通過局域網(wǎng)進(jìn)行上傳,使用的過程中可以自行選擇:
public class OssUtil {
//這里的配置可以在properties或者yml中進(jìn)行配置
@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é)方式進(jìn)行上傳,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("上傳時(shí)間:{}ms", (System.currentTimeMillis() - start));
}
}
}
到此這篇關(guān)于阿里云OSS基于java使用詳解 的文章就介紹到這了,更多相關(guān)阿里云OSS基于java內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于SpringBoot實(shí)現(xiàn)發(fā)送帶附件的郵件
這篇文章主要介紹了基于SpringBoot實(shí)現(xiàn)發(fā)送帶附件的郵件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
使用Maven Archetype插件構(gòu)建Maven工程原型模板的實(shí)例
下面小編就為大家分享一篇使用Maven Archetype插件構(gòu)建Maven工程原型模板的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助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é)合實(shí)例形式較為詳細(xì)的分析說明了jdk1.4,jdk1.5和jdk1.6版本的使用區(qū)別,需要的朋友可以參考下2015-12-12
SpringBoot多租戶配置與實(shí)現(xiàn)示例
本文詳細(xì)介紹了在SpringBoot中實(shí)現(xiàn)多租戶架構(gòu)的方法和步驟,包括配置數(shù)據(jù)源、Hibernate攔截器、租戶解析器等,以共享數(shù)據(jù)庫、共享數(shù)據(jù)表的方式,確保數(shù)據(jù)隔離和安全性,感興趣的可以了解一下2024-09-09
Java游戲服務(wù)器系列之Netty相關(guān)知識(shí)總結(jié)
今天帶大家來學(xué)習(xí)Java游戲服務(wù)器的相關(guān)知識(shí),文中對(duì)Netty作了非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05
springboot使用hibernate validator校驗(yàn)方式
hibernate validator提供了一套比較完善、便捷的驗(yàn)證實(shí)現(xiàn)方式。下面小編給大家介紹下springboot使用hibernate validator校驗(yàn)方式,感興趣的朋友一起看看吧2018-01-01
Java接口自動(dòng)化測(cè)試框架設(shè)計(jì)之Get請(qǐng)求方法和測(cè)試詳解
這篇文章主要介紹了Java接口自動(dòng)化測(cè)試框架設(shè)計(jì) Get請(qǐng)求方法和測(cè)試,框架設(shè)計(jì)我們只是介紹基本的組件,而且框架設(shè)計(jì)沒有想象那么難,一步一步跟著做就會(huì)了。這篇我們來演示,如果通過Java代碼來實(shí)現(xiàn)一個(gè)用純代碼實(shí)現(xiàn)Http中的Get請(qǐng)求過程,需要的朋友可以參考下2019-07-07
Java?NIO實(shí)現(xiàn)聊天系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java?NIO實(shí)現(xiàn)聊天系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11

