当前位置: 首页 > wzjs >正文

深圳品牌营销网站建设国外网页素材网站

深圳品牌营销网站建设,国外网页素材网站,网站的权重,免费涨粉工具一、前言 有时在项目中需要使用一些存储系统来存储文件&#xff0c;那么当项目要接入obs作为存储系统时&#xff0c;就会利用obs来进行文件的上传下载&#xff0c;具体实现如下。 二、如何通过obs实现文件的上传下载&#xff1f; 1.添加相关的obs的maven依赖。 <dependency…

一、前言
有时在项目中需要使用一些存储系统来存储文件,那么当项目要接入obs作为存储系统时,就会利用obs来进行文件的上传下载,具体实现如下。

二、如何通过obs实现文件的上传下载?
1.添加相关的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);// 设置元数据(可选)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);// 设置元数据(可选)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.文件上传接口实现示例:

@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服务异常: " + e.getErrorMessage());  } catch (Exception e) {  return ResponseEntity.internalServerError()  .body("上传失败: " + e.getMessage());  }  }  
}  

有兴趣的可以试一试。


文章转载自:

http://VRaE7t0m.xbzfz.cn
http://n8fSTXvK.xbzfz.cn
http://zBtgoZ5o.xbzfz.cn
http://Nk65vkl8.xbzfz.cn
http://BQx6piUO.xbzfz.cn
http://BDyAOLPO.xbzfz.cn
http://1Zd8ukWo.xbzfz.cn
http://UgYk9Bc0.xbzfz.cn
http://1Si0w7Pb.xbzfz.cn
http://CwEVHZF0.xbzfz.cn
http://VVC4m1cX.xbzfz.cn
http://iR3u1AZb.xbzfz.cn
http://DbK7TGmL.xbzfz.cn
http://GUmvhWbV.xbzfz.cn
http://jnwyujUb.xbzfz.cn
http://I0Coblsq.xbzfz.cn
http://S1l2dvRg.xbzfz.cn
http://pvvIRuv7.xbzfz.cn
http://fZ2FnDcW.xbzfz.cn
http://ZUCn6Eth.xbzfz.cn
http://IIUgXUDl.xbzfz.cn
http://VFgNkZBb.xbzfz.cn
http://gSHXjNVF.xbzfz.cn
http://L6C1zuvs.xbzfz.cn
http://AWPyXEcH.xbzfz.cn
http://4YzJCgXw.xbzfz.cn
http://4GfIrmNG.xbzfz.cn
http://5JH6NWLd.xbzfz.cn
http://qrP99yAR.xbzfz.cn
http://vnuMLyBi.xbzfz.cn
http://www.dtcms.com/wzjs/659275.html

相关文章:

  • 企业门户网站的主要论点及写作体会怎么写虚拟主机 两个网站
  • 要找人做公司网站应该怎么做建立了公司门户网站
  • 做网站制作课程总结赣州市网站建设
  • 如何查询一个网站是否备案招聘系统推广哪家好
  • 高端营销型企业网站建设网店代运营被骗怎么办
  • 印刷网络商城网站建设企业建站系统信息
  • 苏州网站建设及推广深圳营销型网站建设公司选择哪家好
  • 大学生做微商网站怎么让网站自适应
  • 长沙优化网站技巧建设网站的公司要什么资质
  • 泰安网站建设推广优化网站如何seo
  • 比较酷炫的企业网站上海有什么大公司
  • 导购类网站模板外贸如何建立网站
  • 如何做百度推广的网站做商业网站没有注册公司
  • 公司网站开发可行性报告手工制作灯笼视频教程
  • 网站设计大全推荐小微企业2022年税收优惠政策
  • 济南营销型网站建设哪家好免费网站建设价格费用
  • 网站主题及样式优化教育门户网站建设方案
  • 网站怎么做微信接口58同城宿迁二手房
  • 网站大事记时间轴折叠动画设计和动漫设计一样吗
  • 青岛网站制作多少钱一个拉新工作室在哪里接项目
  • 辽宁网站建设价位网络营销工具的分类
  • 一站式网站设计易语言如何建设网站
  • 教学督导网站建设报告西乡做网站费用
  • 能看网站的浏览器为什么要用php做网站
  • 用dreammwea怎么做视频网站360网站推广官网球阀
  • 马鞍山市网站建设简单网站系统
  • 保定网站排名网站建设管理策划书
  • 深圳宝安区有几个街道厦门市做网站优化
  • 企业网站的网址通常包括asp旅游网站模板下载
  • 网站设计建设合同是wordpress 替换主题