文件上传第三方存储平台:七牛云对象存储(Java为例)

7 篇文章 0 订阅

目录

一、注册账号并创建密钥

二、创建存储空间bucket

三、手动添加文件到存储空间

四、代码中执行上传操作


我发现很多人还不知道对于第三方存储如何在代码中进行使用,而实际开发中很多场景下可能都会遇到。

所以我特别写一篇博客,目的一是方便自己使用,二是给还在学习中的朋友一点参考。

如果对你有帮助还请不吝点赞👍加收藏💕。

一、注册账号并创建密钥

如何使用,其实官网已经很详细了。这里带着大家一起熟悉一下,个人认为最主要的是熟悉!

官网地址:七牛云 | 一站式场景化智能音视频 APaaS

首先需要注册、登录账号

然后点击头像进入:个人中心 -> 密钥管理,

如果没有密钥创建一个密钥

下图可以看到我们创建的密钥。AK/SK即对应的AccessKeySecretKey

 

二、创建存储空间bucket

从官网产品中找到对象存储Kodo,可能未来网站会更新布局,一般情况下找不到就搜索就是了。

然后按照下图添加一个存储空间。目的是用来存放我们未来要上传的文件。 

确定之后会提示如下信息,它会自动为我们创建的这个存储空间提供一个域名(有效期30天)。我们可以选择绑定自己的域名,这里暂时就用它提供的就好了。

然后就会看到生成的这个空间了。

到这里,我们就有了一个属于自己的存储空间啦!

三、手动添加文件到存储空间

点击进入当前创建的存储空间,然后选择文件管理,上传一个本地图片文件试试。

当然了,我们也可以选择拖动上传,以及创建文件夹来管理不同的资源。这里就不演示了。

然后点击详情,我们就可以看到文件的网络地址url。

我们试试访问这个地址,就可以看到刚刚上传的图片了。

四、代码中执行上传操作

好了,以上我们成功拥有了属于自己的对象存储空间了。

接下来,就是在代码里面实现上传操作了。

官网提供了各主流开发语言的SDK,我们可以根据官网提供的SDK,来完成功能操作。

如何在官网查询,我截了图如下:

 

💻下面,我给出我的代码示例,供各位参考:

@RestController
@RequestMapping("upload")
public class UploadController {
    @Autowired
    private QiniuUtils qiniuUtils;

    @PostMapping
    public Result upload(@RequestParam("image") MultipartFile file){
        String fileName = UUID.randomUUID().toString() + "." + StringUtils.substringAfterLast(file.getOriginalFilename(), ".");
        boolean upload = qiniuUtils.upload(file, fileName);
        if (upload){
            return Result.success(QiniuUtils.url + fileName);
        }
        return Result.fail(20001,"上传失败");
    }
}
# 上传文件总的最大值
spring.servlet.multipart.max-request-size=20MB
# 单个文件的最大值
spring.servlet.multipart.max-file-size=2MB
@Component
public class QiniuUtils {

    public static  final String url = "https://go.sbps123.com/";

    @Value("${qiniu.accessKey}")
    private  String accessKey;
    @Value("${qiniu.accessSecretKey}")
    private  String accessSecretKey;

    public  boolean upload(MultipartFile file,String fileName){

        //构造一个带指定 Region 对象的配置类
        Configuration cfg = new Configuration(Region.huabei());
        //...其他参数参考类注释
        UploadManager uploadManager = new UploadManager(cfg);
        //...生成上传凭证,然后准备上传
        String bucket = "test-home-1";
        //默认不指定key的情况下,以文件内容的hash值作为文件名
        try {
            byte[] uploadBytes = file.getBytes();
            Auth auth = Auth.create(accessKey, accessSecretKey);
            String upToken = auth.uploadToken(bucket);
                Response response = uploadManager.put(uploadBytes, fileName, upToken);
                //解析上传成功的结果
                DefaultPutRet putRet = JSON.parseObject(response.bodyString(), DefaultPutRet.class);
                return true;
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        return false;
    }
}

创作不易,感谢各位的支持与肯定!💕

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

何苏三月

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

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

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

打赏作者

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

抵扣说明:

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

余额充值