首页 > 其他分享 >11.12 ali-oss上传图片

11.12 ali-oss上传图片

时间:2024-11-12 16:01:26浏览次数:1  
标签:String ali oss 11.12 fileName file new import

11.12 ali-oss上传图片

1.上传到服务器:

    @PostMapping("/upload")
    public String upload(MultipartFile file) {
        if (file.isEmpty()) {
            return "图片上传失败";
        }
        System.out.println();
        String OriginalfileName = file.getOriginalFilename();
        String ext=OriginalfileName.substring(OriginalfileName.lastIndexOf("."));
        String uuid= UUID.randomUUID().toString().replace("-","");
        String fileName = uuid + ext;
        ApplicationHome applicationHome = new ApplicationHome(this.getClass());
        String pre = applicationHome.getDir().getParentFile().getParentFile().getAbsolutePath()+"\\src\\main\\resources\\images\\";
        String path=pre+fileName;
//        System.out.println(path);
        try {
            file.transferTo(new File(path));
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return path;
    }

如果项目部署在多台服务器上,这样的话如果用户上传时是服务器1,之后访问服务器2就访问不到之前的文件了。

2.上传到oss阿里云对象存储

UploadUtil.java

package com.haole.testdemo1.Utils;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

public class UploadUtil {
    public static final String ALI_DOMAIN="https://(自己的domain名).oss-cn-beijing.aliyuncs.com/";
    public String uploadImage(MultipartFile file) throws IOException {
        String originalFileName = file.getOriginalFilename();
        String ext="."+ FilenameUtils.getExtension(originalFileName);
        String uuid= UUID.randomUUID().toString().replace("-","");
        String fileName = uuid + ext;
        //地域节点
        String endpoint="http://oss-cn-beijing.aliyuncs.com";
        String accessKeyId="自己的accessKeyId";
        String accessKeySecret="自己的accessKeySecret";
        OSS ossclient= new OSSClientBuilder().build(endpoint,accessKeyId,accessKeySecret);
        ossclient.putObject("vastjoyupload",fileName,file.getInputStream());
        ossclient.shutdown();
        return ALI_DOMAIN+fileName;
    }
}

调用工具类实现上传接口

    @PostMapping("/uploadImg")
    public String upload2(MultipartFile file) throws IOException {

        UploadUtil uploadUtil=new UploadUtil();
        String result = uploadUtil.uploadImage(file);
        return result;

    }

标签:String,ali,oss,11.12,fileName,file,new,import
From: https://www.cnblogs.com/vastjoy/p/18542055

相关文章

  • 11.12,pythpn函数
    函数:一、什么是函数定义:函数是组织好,可重复使用,用来实现单一,或关联功能的代码段二、pycharm中的表结构项目,包(init)或目录,py文件,py文件包含多个函数或类等三、函数的有哪些优点?1、降低代码冗余2、增加代码的复用性,提高开发效率3、提高程序的拓展性4、封装:就是把代码片段放......
  • 代码静态测试工具Klocwork 2024.3新版发布:Validate平台改进编码标准CC++
    Klocwork2024.3为C/C++分析引擎和构建上传流程引入了新功能和性能改进。此版本还附带了增强的安全性和用户体验改进,包括用于SAML/OIDC身份验证的IDE插件中更好的用户身份验证工作流程。其他增强功能包括更广泛的编码标准覆盖范围以及改进的与Bazel构建系统的集成。Vali......
  • 记录一次calico是running状态
    ####证书都没有到期1、calico状态 2、进入容器crictlexec-it614c0dafc6bfb/bin/bashmore/etc/calico/confd/config/bird.cfg 识别出来不是eth0的网卡注意:可以删除这个网卡,删除前确认下网卡是否有用 iplink deletebr-4978c5376187  ......
  • 11.12
    ......
  • vue3 antd 报错:please transfer a valid name path to form item
    在使用antd时多层嵌套循环表单时校验会报如下错误:pleasetransferavalidnamepathtoformitem原因:是循环体和字段无法绑定解决如下:<a-form><divv-for="(item,index)inform.List":key="index"><a-form-item:name="['List',index,&......
  • 2028E - Alice's Adventures in the Rabbit Hole
    可以先从一条链的情况开始观察,然后发现每次都会选深度最小的子节点(minf(v)),可以看作一个短链剖分,不过我不是这么写的g(v)表示的是f(v)是f(u)的几分之几我推的式子是这两个,但是我没法证明g(v)不会等于2使得分母为0但是我觉得因为g(x)一定是合法的所以显然2-g(v)不会为0\(f(x)=\frac......
  • alias——定义或显示别名
    转自于:https://github.com/jaywcjlove/linux-command,后不赘述alias定义或显示别名。概要alias[-p][name[=value]...]主要用途简化较长的命令。定义、修改或者显示一个或多个别名。选项-p:显示全部已定义的别名。name(可选):指定要(定义、修改、显示)的别名。value(可......
  • Capitalism
    算法差分约束观察到\(a_i\)最后是确定唯一的+我是从差分约束专题来的,考虑对于\(a_i\)的约束条件进行差分约束。转化约束条件观察到,\[\left\{\begin{array}{lr}b=0,\lvert{a_u-a_v}\rvert=1,&\\b=1,a_u+1=a_v&\en......
  • ffmpeg acrossfade
    Applycrossfadefromoneinputaudiostreamtoanotherinputaudiostream.Thecrossfadeisappliedforspecifieddurationneartheendoffirststream.Thefilteracceptsthefollowingoptions:nb_samples,nsSpecifythenumberofsamplesforwhichthe......
  • ffmpeg acrossover
    Splitaudiostreamintoseveralbands.Thisfiltersplitsaudiostreamintotwoormorefrequencyranges.Summingallstreamsbackwillgiveflatoutput.Thefilteracceptsthefollowingoptions:splitSetsplitfrequencies.Thosemustbepositiveandincr......