简单的七牛上传文件

导入jar包
     <!-- https://mvnrepository.com/artifact/com.qiniu/qiniu-java-sdk -->
        <dependency>
            <groupId>com.qiniu</groupId>
            <artifactId>qiniu-java-sdk</artifactId>
            <version>7.16.0</version>
        </dependency>
Demo接口
mport org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.qiniu.storage.Configuration;

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

@RestController
@Slf4j
@RequestMapping("/upload")
public class FileController {


    //...生成上传凭证,然后准备上传
    private String accessKey = "";
    private String secretKey = "";
    private String bucket =  "top-smartly";
    private String url =  "";
    private String prefixUrl = "";

    @PostMapping("/fileUpload")
    public String upload(MultipartFile file, String suffix) {

        //构造一个带指定 Region 对象的配置类,指定存储区域,和存储空间选择的区域一致
        Configuration cfg = new Configuration(Region.huabei());
        //...其他参数参考类注释
        UploadManager uploadManager = new UploadManager(cfg);
        //默认不指定key的情况下,以文件内容的hash值作为文件名
        String key ="whg/2024/10/25" +UUID.randomUUID().toString()+"."+suffix;
        try {
            //得到本地文件的字节数组
            byte[] bytes = IOUtils.toByteArray(file.getInputStream());
            //认证
            Auth auth = Auth.create(accessKey, secretKey);
            //认证通过后得到token(令牌)
            String upToken = auth.uploadToken(bucket);
            try {
                //上传文件,参数:字节数组,key,token令牌
                //key: 建议我们自已生成一个不重复的名称
                Response response = uploadManager.put(bytes, key, upToken);
                //解析上传成功的结果
                DefaultPutRet putRet = JsonUtil.getJsonToBean(response.bodyString(), DefaultPutRet.class);  // new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
                System.out.println(putRet.key);
                System.out.println(putRet.hash);
                String imageUrl = url + putRet.key;
                return prefixUrl+ imageUrl;
            } catch (QiniuException ex) {
                log.error("上传文件至OSS[异常]",ex);
            }
        } catch (IOException ex) {
            log.error("上传文件至OSS[异常]",ex);

        }
        return null;
    }


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨云隐者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值