获取yml配置文件的中的endpoint、accessKeyId、accessKeySecret、bucketName
| aliyun: |
| oss: |
| endpoint: oss-cn-hangzhou.aliyuncs.com |
| accessKeyId: 改成自己的id |
| accessKeySecret: 改成自己的秘钥 |
| bucketName: mall-qsd |
| @Value("${aliyun.oss.endpoint}") |
| private String ALIYUN_OSS_ENDPOINT; |
| @Value("${aliyun.oss.accessKeyId}") |
| private String ALIYUN_OSS_ACCESSKEYID; |
| @Value("${aliyun.oss.accessKeySecret}") |
| private String ALIYUN_OSS_ACCESSKEYSECRET; |
| @Value("${aliyun.oss.bucketName}") |
| private String ALIYUN_OSS_BUCKETNAME; |
| |
| |
| |
| public String uploadFile(MultipartFile file) throws IOException { |
| OSSClient ossClient = new OSSClient(ALIYUN_OSS_ENDPOINT, ALIYUN_OSS_ACCESSKEYID, ALIYUN_OSS_ACCESSKEYSECRET); |
| SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); |
| |
| String fileName = multipartFile.getOriginalFilename(); |
| |
| String suffixName = fileName.substring(fileName.lastIndexOf(".")); |
| |
| String finalFileName = System.currentTimeMillis() + "" + new SecureRandom().nextInt(0x0400) + suffixName; |
| |
| String objectName = sdf.format(new Date()) + "/" + finalFileName; |
| |
| ObjectMetadata objectMetadata = new ObjectMetadata(); |
| objectMetadata.setContentType("image/jpg"); |
| |
| ossClient.putObject(ALIYUN_OSS_BUCKETNAME, objectName, new ByteArrayInputStream(multipartFile.getBytes()),objectMetadata); |
| |
| Date expiration = new Date(System.currentTimeMillis() + 3600 * 1000); |
| String url = ossClient.generatePresignedUrl(ALIYUN_OSS_BUCKETNAME, objectName, expiration).toString(); |
| ossClient.shutdown(); |
| log.info("阿里云OSS的文件url:{}", url); |
| return url; |
| } |
转载:https://blog.csdn.net/qsd1530/article/details/106928947
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~