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

苍穹外卖-创建阿里云oss工具包

添加配置信息:

sky:alioss:endpoint: ***access-key-id: ***access-key-secret: ***bucket-name: ***

把配置的内容转换成对象:

@Component
@ConfigurationProperties(prefix = "sky.alioss")
@Data
public class AliOssProperties {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;
}

创建工具包对象:

@Data
@AllArgsConstructor
@Slf4j
public class AliOssUtil {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;/*** 文件上传** @param bytes* @param objectName* @return*/public String upload(byte[] bytes, String objectName) {// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);try {// 创建PutObject请求。ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes));} catch (OSSException oe) {System.out.println("Caught an OSSException, which means your request made it to OSS, "+ "but was rejected with an error response for some reason.");System.out.println("Error Message:" + oe.getErrorMessage());System.out.println("Error Code:" + oe.getErrorCode());System.out.println("Request ID:" + oe.getRequestId());System.out.println("Host ID:" + oe.getHostId());} catch (ClientException ce) {System.out.println("Caught an ClientException, which means the client encountered "+ "a serious internal problem while trying to communicate with OSS, "+ "such as not being able to access the network.");System.out.println("Error Message:" + ce.getMessage());} finally {if (ossClient != null) {ossClient.shutdown();}}//文件访问路径规则 https://BucketName.Endpoint/ObjectNameStringBuilder stringBuilder = new StringBuilder("https://");stringBuilder.append(bucketName).append(".").append(endpoint).append("/").append(objectName);log.info("文件上传到:{}", stringBuilder.toString());return stringBuilder.toString();}
}

把工具包对象交给spring的ioc容器管理:

@Configuration
@Slf4j
public class OssConfiguration {@Bean@ConditionalOnMissingBean   //这个注解的意思是:如果没有这中bean的时候spring在创建bean对象public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties){log.info("开始创建阿里云文件上传工具类对象:{}", aliOssProperties);return new AliOssUtil(aliOssProperties.getEndpoint(),aliOssProperties.getAccessKeyId(),aliOssProperties.getAccessKeySecret(),aliOssProperties.getBucketName());}
}
http://www.xdnf.cn/news/389467.html

相关文章:

  • Agent杂货铺
  • 大模型知识蒸馏(Qwen2.5系列模型KL散度蒸馏)
  • leetcode热题100——day26
  • 当虚拟照进现实——《GTA6》如何重新定义开放世界的可能性‌
  • Git的核心作用详解
  • pwm控制
  • istio in action之服务网格和istio组件
  • LLM框架
  • Ubuntu 24服务器部署abp vnext应用程序的完整教程
  • 模块自动导入的小工具
  • 使用go开发安卓程序
  • 【漫话机器学习系列】252.零损失(0-1 Loss)
  • 豆包:国内 web 辅助开发的领头羊
  • 79.评论日记
  • Linux防火墙
  • Python模块与包以及工程文件管理
  • 【Python训练营打卡】day22 @浙大疏锦行
  • Linux-Ext系列文件系统
  • AI Agent(10):个人助手应用
  • Transformer Decoder-Only 参数量计算
  • 【计算机视觉】OpenCV实战项目 :Image_Cartooning_Web_App:基于深度学习的图像卡通化
  • 代理售票系统|基于Java+vue的代理售票系统(源码+数据库+文档)
  • CVPR2023 | StyLess: 提升对抗样本的可迁移性
  • MATLAB 矩阵与数组操作基础教程
  • 量化交易系统开发经验分享--回测框架调研
  • 股票回购、股票减持和股票解禁对股票价格影响的综合分析
  • Synchronized与锁升级
  • 经典工具箱、常见工具、软件合集【免费无广告】
  • 【C/C++】跟我一起学_C++同步机制效率对比与优化策略
  • 云计算中的虚拟化:成本节省、可扩展性与灾难恢复的完美结合