oss上传图片

原文链接:oss上传图片 – 编程屋

在公司中,上传图片和视屏可以说是很常见的操作了。通常会将图片和视屏保存到阿里云上进行存储。所以需要阿里云的4个参数(站点acess_key_idacess_key_secretbucket_name)。

        //上传的固定值
    //站点
    private static final String END_POINT = "http://oss-cn-hangzhou.aliyuncs.com";
    //获取acess_key_id
    private static final String ACCESS_KEY_ID = "xxxxxx";
    //获取acess_key_secret
    private static final String ACCESS_KEY_SECRET = "xxxxxxx";
    //获取bucket_name
    private static final String YOUR_BUCKET_NAME = "XXXX";



public ResultUtil<String> uploadImage(@RequestParam("fileName") MultipartFile file,@RequestParam("type") Integer type) {
        if (!SomeUtil.isNoEmpty(file)) {
            throw new RuntimeException("请上传文件");
        }
        String url = "";
        if (type == 0 ) {
             url = UploadFile.uploadOSSFile(file, "cmsh/img/",type);
        }else if (type == 1 ) {
            url = UploadFile.uploadOSSFile(file, "cmsh/video/",type);
        }


        return ResultUtil.success(url);
    }

public static String uploadOSSFile(MultipartFile file, String dir,Integer type) {
        // 图片访问地址
        String httpUrl = "";
        if (SomeUtil.isNoEmpty(file)) {
            try {

                String endpoint = END_POINT;
                String yourBucketName = YOUR_BUCKET_NAME;

                // 图片名称
                String youKeyName = dir + DateUtil.date2String(new Date(), "yyyyMMddHHmmssSSS") + RandomUtil.getRandomNumber(4) + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
                // 图片访问地址
                httpUrl = endpoint.substring(0, 7) + yourBucketName + "." + endpoint.substring(7) + "/" + youKeyName;

                // 创建OSSClient实例
                OSSClient ossClient = new OSSClient(endpoint, ACCESS_KEY_ID, ACCESS_KEY_SECRET);

                if (type == 0 ) {
                    // meta设置请求头(防止打开图片链接直接下载)
                    ObjectMetadata meta = new ObjectMetadata();
                    meta.setContentType("image/jpg");
                    ossClient.putObject(yourBucketName, youKeyName, file.getInputStream(),meta);
                }else {
                    ossClient.putObject(yourBucketName, youKeyName, file.getInputStream());
                }

                // 关闭client
                ossClient.shutdown();

                log.info("上传图片成功:" + httpUrl);
            } catch (MaxUploadSizeExceededException e) {
                throw new RuntimeException("上传文件应小于200MB");
            } catch (IOException e) {
                log.error(e.getMessage());
                throw new RuntimeException("上传异常");
            } catch (Exception e) {
                log.error(e.getMessage());
                throw new RuntimeException("上传失败");
            }
        }
        return httpUrl;
    }

如此选择图片上传或视频上传就能够上传到阿里云对应文件夹中。(bucketName/cmsh/img/)

以上只是部分内容,为了维护方便,本文已迁移到新地址:oss上传图片 – 编程屋

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值