中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

網(wǎng)站實現(xiàn)seo公司發(fā)展前景

網(wǎng)站實現(xiàn),seo公司發(fā)展前景,做好系部宣傳和網(wǎng)站建設(shè),廣西城鄉(xiāng)建設(shè)部網(wǎng)站一、前言 有時在項目中需要使用一些存儲系統(tǒng)來存儲文件&#xff0c;那么當項目要接入obs作為存儲系統(tǒng)時&#xff0c;就會利用obs來進行文件的上傳下載&#xff0c;具體實現(xiàn)如下。 二、如何通過obs實現(xiàn)文件的上傳下載&#xff1f; 1.添加相關(guān)的obs的maven依賴。 <dependency…

一、前言
有時在項目中需要使用一些存儲系統(tǒng)來存儲文件,那么當項目要接入obs作為存儲系統(tǒng)時,就會利用obs來進行文件的上傳下載,具體實現(xiàn)如下。

二、如何通過obs實現(xiàn)文件的上傳下載?
1.添加相關(guān)的obs的maven依賴。

 <dependency><groupId>com.huaweicloud</groupId><artifactId>esdk-obs-java-bundle</artifactId><version>3.23.9</version></dependency>

2.配置obs客戶端連接。

@Configuration  
@Data
public class OBSConfig {  @Value("${obs.accessKey}")  private String accessKey;  @Value("${obs.secretKey}")  private String secretKey;  @Value("${obs.endpoint}")  private String endpoint;  @Value("${obs.bucket}")private String bucketName;}  

3.在YAML添加obs配置。

obs:endpoint: http://xxxxxx:xxxxaccessKey: xxxxxxxxsecretKey: xxxxxxxxxxxbucket: my-bucket

4.定義obs工具類,代碼如下:

import com.obs.services.ObsClient;
import com.obs.services.exception.ObsException;
import com.obs.services.model.CompleteMultipartUploadRequest;
import com.obs.services.model.CompleteMultipartUploadResult;
import com.obs.services.model.ObjectMetadata;
import com.obs.services.model.PutObjectRequest;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;import java.io.File;
import java.io.InputStream;
import java.util.UUID;@Component
public class ObsUtil {@Resourceprivate OBSConfig  oBSConfig;private ObsClient obsClient;public ObsClient getClient() {if (obsClient == null) {obsClient = new ObsClient(oBSConfig.getAccessKey, oBSConfig.getSecretKey, oBSConfig.getEndPoint);}return obsClient;}/*** 上傳文件到OBS** @param file 待上傳的文件* @return 返回文件的訪問路徑*/public String uploadFile(File file) {try (ObsClient obsClient = getObsClient()) {// 生成唯一的文件名String fileName = UUID.randomUUID().toString() + "-" + file.getName();PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, fileName, file);// 設(shè)置元數(shù)據(jù)(可選)ObjectMetadata metadata = new ObjectMetadata();metadata.setContentType("application/octet-stream");putObjectRequest.setMetadata(metadata);obsClient.putObject(putObjectRequest);return endpoint + "/" + bucketName + "/" + fileName;} catch (ObsException e) {throw new RuntimeException("上傳文件失敗:" + e.getMessage(), e);}}/*** 上傳文件流到OBS** @param inputStream 文件輸入流* @param fileName    文件名* @return 返回文件的訪問路徑*/public String uploadInputStream(InputStream inputStream, String fileName) {try (ObsClient obsClient = getObsClient()) {// 生成唯一的文件名String objectKey = UUID.randomUUID().toString() + "-" + fileName;PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectKey, inputStream);// 設(shè)置元數(shù)據(jù)(可選)ObjectMetadata metadata = new ObjectMetadata();metadata.setContentType("application/octet-stream");putObjectRequest.setMetadata(metadata);obsClient.putObject(putObjectRequest);return endpoint + "/" + bucketName + "/" + objectKey;} catch (ObsException e) {throw new RuntimeException("上傳文件流失敗:" + e.getMessage(), e);}}/*** 下載文件** @param objectKey 對象鍵(文件名)* @param savePath  保存路徑*/public Inputstream downloadFile(String objectKey, String savePath) {try (ObsClient obsClient = getObsClient()) {GetObjectRequest request = new GetObjectRequest();request.setBucketName(StringUtils.isEmpty(bucket) ? oBSConfig.getBucket : bucket);String objectName = (originFilePath == null ? "" : originFilePath) + fileName;objectName = objectName.charAt(0) == '/' ? objectName.substring(1) : objectName;request.setObjectKey(objectName);if (offset != null) {request.setRangeStart(offset);if (length != null) {request.setRangeEnd(offset + length);}}ObsObject object = client.getObject(request);return object.getObjectContent();} catch (ObsException e) {throw new RuntimeException("下載文件失敗:" + e.getMessage(), e);}}/*** 刪除文件** @param objectKey 對象鍵(文件名)*/public void deleteFile(String objectKey) {try (ObsClient obsClient = getObsClient()) {obsClient.deleteObject(bucketName, objectKey);} catch (ObsException e) {throw new RuntimeException("刪除文件失敗:" + e.getMessage(), e);}}
}

5.文件上傳接口實現(xiàn)示例:

@RestController  
@RequestMapping("/obs")  
public class OBSUploadController {  @Autowired  private ObsUtil obsUtil ;  @PostMapping("/upload")  public ResponseEntity<String> uploadFile(  @RequestParam("file") MultipartFile file) {  try {  obsUtil.uploadFile(file.getInputStream(),"xxxx");  return ResponseEntity.ok("OBS路徑: " + objectKey);  } catch (ObsException e) {  return ResponseEntity.status(e.getResponseCode())  .body("OBS服務(wù)異常: " + e.getErrorMessage());  } catch (Exception e) {  return ResponseEntity.internalServerError()  .body("上傳失敗: " + e.getMessage());  }  }  
}  

有興趣的可以試一試。

http://www.risenshineclean.com/news/4396.html

相關(guān)文章:

  • 企業(yè)免費建站網(wǎng)站網(wǎng)站如何添加友情鏈接
  • 網(wǎng)站建設(shè)與網(wǎng)頁設(shè)計論述題用html制作淘寶網(wǎng)頁
  • 江山網(wǎng)站建設(shè)百度網(wǎng)盤客服
  • 網(wǎng)站建設(shè)sem怎么做google seo優(yōu)化
  • 上線了做網(wǎng)站怎么樣許昌seo公司
  • 網(wǎng)站編程語言站長工具查詢官網(wǎng)
  • 教做美甲的網(wǎng)站查詢網(wǎng)站流量的網(wǎng)址
  • 手機商城網(wǎng)站建設(shè)策劃方案范文seo優(yōu)化工作內(nèi)容做什么
  • 互聯(lián)網(wǎng)門戶網(wǎng)站是什么意思上海關(guān)鍵詞優(yōu)化排名軟件
  • 靠網(wǎng)站點擊就能賺錢的做企業(yè)網(wǎng)絡(luò)推廣計劃書
  • 企業(yè)網(wǎng)站的布局類型品牌策劃方案怎么做
  • 做網(wǎng)站的職位公司域名注冊查詢
  • 帶后臺管理的網(wǎng)站模板打開搜索引擎
  • 做貨代在哪些網(wǎng)站能找到客戶推廣app用什么平臺比較好
  • 上海網(wǎng)站建設(shè)浦東百度圖片搜索入口
  • 禁止粘貼的網(wǎng)站如何優(yōu)化搜索引擎的準確性
  • 婚禮策劃網(wǎng)站模板網(wǎng)絡(luò)精準推廣
  • 什么網(wǎng)站做的靠枕比較有創(chuàng)意搜狐財經(jīng)峰會直播
  • 武漢黑馬程序員培訓機構(gòu)官網(wǎng)上海自動seo
  • 網(wǎng)站打開時的客戶引導頁的搜索引擎優(yōu)化
  • 網(wǎng)站滾動效果怎么做的上海互聯(lián)網(wǎng)公司排名
  • 做一份完整的網(wǎng)站規(guī)劃書50個市場營銷經(jīng)典案例
  • awds網(wǎng)站開發(fā)留學廣州疫情最新情況
  • 做個網(wǎng)站好還是做淘寶好建站是什么意思
  • 做網(wǎng)站建設(shè)工資多少廣告網(wǎng)絡(luò)推廣
  • 外貿(mào)沒有公司 如何做企業(yè)網(wǎng)站seo系統(tǒng)培訓
  • jsp購物網(wǎng)站開發(fā)教程專業(yè)網(wǎng)站seo推廣
  • 有什么做視頻的素材網(wǎng)站新東方烹飪培訓學校
  • php網(wǎng)頁設(shè)計論文淄博seo公司
  • 蘇州最新通知天津搜索引擎優(yōu)化