云存儲(chǔ)解決方案-華為云OBS
1. 簡(jiǎn)介
華為云對(duì)象存儲(chǔ)服務(wù)(Object Storage Service,簡(jiǎn)稱OBS)為您提供基于網(wǎng)絡(luò)的數(shù)據(jù)存取服務(wù)。使用OBS,您可以通過(guò)網(wǎng)絡(luò)隨時(shí)存儲(chǔ)和調(diào)用包括文本、圖片、音頻和視頻等在內(nèi)的各種非結(jié)構(gòu)化數(shù)據(jù)文件。
華為云OBS將數(shù)據(jù)文件以對(duì)象(object)的形式上傳到存儲(chǔ)空間(bucket - 桶)中。
2. 開通OBS
2.1 進(jìn)入官網(wǎng)
打開https://auth.huaweicloud.com/authui/login.html?locale=zh-cn&service=#/login ,申請(qǐng)華為云賬號(hào)或者華為賬號(hào)并完成實(shí)名認(rèn)證。
2.2 充值(可以不做)
2.3. 開通OBS
-
登陸華為云官網(wǎng),點(diǎn)擊右上角的控制臺(tái)
-
在快速導(dǎo)航界面搜索對(duì)象存儲(chǔ)服務(wù)OBS,即可找到OBS,或者直接在快速導(dǎo)航里看見(jiàn),直接進(jìn)入即可。
進(jìn)入之后,開通服務(wù)即可。
- 開通服務(wù)后,點(diǎn)擊左側(cè)的總覽選項(xiàng),進(jìn)入OBS控制臺(tái)界面。
- 創(chuàng)建存儲(chǔ)空間–桶
新建桶,命名為web-tlias-cn,讀寫權(quán)限改為 公共讀
3. OBS快速入門
[參考文檔官方]
3.1 創(chuàng)建測(cè)試工程,引入依賴
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>esdk-obs-java-bundle</artifactId>
<version>3.21.11</version>
</dependency>
3.2 在測(cè)試類中創(chuàng)建方法上傳本地文件來(lái)測(cè)試
import com.obs.services.ObsClient;
import java.io.File;
public class HuaweiDemo {
public static void main(String[] args) throws Exception {
// Endpoint以北京四為例,其他地區(qū)請(qǐng)按實(shí)際情況填寫。
String endPoint = "https://obs.cn-north-4.myhuaweicloud.com";
String ak = "-----------------";
String sk = "--------------------------";
// 創(chuàng)建ObsClient實(shí)例
ObsClient obsClient = new ObsClient(ak, sk, endPoint);
// localfile為待上傳的本地文件路徑,需要指定到具體的文件名
obsClient.putObject("web-tlias-cn", "1.jpg", new File("E:\\新建文件夾\\圖片2.jpg"));
3.3 獲取密鑰
然后新增密鑰創(chuàng)建密鑰即可,并將密鑰下載下來(lái)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-834773.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-834773.html
4. 在spring中集成OBS
- 將密鑰、 地址、桶名配置到application.yml文件中,方便后期的更改
huaweiyun:
obs:
endPoint: https://obs.cn-north-4.myhuaweicloud.com
accessKeyId: -------------------
secretAccessKey: ------------------------------------
bucketName: web-tlias-cn
- 創(chuàng)建對(duì)應(yīng)的配置文件中華為賬戶對(duì)應(yīng)的實(shí)體類
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties(prefix = "huaweiyun.obs")
public class HuaWeiOBSProperties {
private String endPoint;
private String accessKeyId;
private String secretAccessKey;
private String bucketName;
}
- 在工具類中引入OBS實(shí)體類對(duì)象,并獲取方法將文件上傳以及返回文件的路徑
import com.obs.services.ObsClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;
@Component
public class HuaWeiOBSUtills {
//注入華為云對(duì)象
@Autowired
private HuaWeiOBSProperties huaWeiOBSProperties;
public String upload(MultipartFile file) throws IOException {
//獲取華為云Obs參數(shù)
String endpoint = huaWeiOBSProperties.getEndPoint();
String accessKeyId = huaWeiOBSProperties.getAccessKeyId();
String accessKeySecret = huaWeiOBSProperties.getSecretAccessKey();
String bucketName = huaWeiOBSProperties.getBucketName();
// 獲取上傳的文件的輸入流
InputStream inputStream = file.getInputStream();
// 避免文件覆蓋
String originalFilename = file.getOriginalFilename();
String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));
//上傳文件到 OBS
ObsClient obsClient = new ObsClient(accessKeyId, accessKeySecret, endpoint);
obsClient.putObject(bucketName, fileName, inputStream);
//文件訪問(wèn)路徑https://web-tlias-cn.obs.cn-north-4.myhuaweicloud.com/1.jpg
String url = endpoint.split("http://")[0] + "http://" + bucketName + "." + endpoint.split("http://")[1] + "/" + fileName;
// 關(guān)閉obsClient
obsClient.close();
return url;// 把上傳到oss的路徑返回
}
}
- 在upload類中,調(diào)用OBS工具類以及方法,將上傳的文件傳入到華為云OBS中
import com.itheima.pojo.Result;
import com.itheima.utils.HuaWeiOBSUtills;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
@Slf4j
@RestController
public class UploadController {
@Autowired
private HuaWeiOBSUtills huaWeiOBSUtills;
@PostMapping("/upload")
public Result upload(MultipartFile image) throws IOException {
log.info("文件的名字:{}",image.getOriginalFilename());
//調(diào)用阿里云OSS工具類,將上傳上來(lái)的文件存入阿里云
String url = huaWeiOBSUtills.upload(image);
//將圖片上傳完成后的url返回,用于瀏覽器回顯展示
return Result.success(url);
}
}
到了這里,關(guān)于云存儲(chǔ)解決方案-華為云OBS服務(wù)的基礎(chǔ)使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!