图片上传到阿里云上

图片上传到阿里云,其实跟文件上传到阿里云的做法是一样的,去掉了给文件格式命名等细节处理的操作,就更加简洁了一点。

    /**
     * 上传图片
     * @param file
     * @return
     */
    @RequestMapping(value = "uploadFile", method = RequestMethod.POST)
    @ResponseBody
    public WebResponse uploadFile(@RequestParam("file") MultipartFile file ) {
        if (file != null) {
            String fileType = "";
            if (file.getOriginalFilename().indexOf(".") < 1) {
                return WebResponse.resFail("文件错误",null);
            } else {
                fileType = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."), file.getOriginalFilename().length());
            }
            String uuid =  UUID.randomUUID().toString().replace("-", "") + fileType;
            Oss oss = new Oss();
            oss.setKey(uuid);
            try {
                oss.setValue(file.getBytes());
            } catch (IOException e) {
                logger.error("上传出错");
            }
            List<Oss> list = new ArrayList<>();
            list.add(oss);
            ossService.uploadOssForSteam(list);
            logger.info("上传的路径", OssConfig.ENTFILE_PDFACCESS);
            return WebResponse.resSuccess("上传成功",OssConfig.ENTFILE_PDFACCESS+uuid);
        }else {
            return WebResponse.resException("请上传文件",null);

        }
    }

OSS的代码可以在网上找到,关于一些参数的含义都有详细介绍的。

    /**
     * 上传oss
     *
     * @return
     */
    @Override
    public Map uploadOssForSteam(List<Oss> ossList) {
        String endpoint = OssConfig.ENTFILE_ENDPOINT;
        String accessKeyId = OssConfig.ENTFILE_ACCESSKEYID;
        String accessKeySecret = OssConfig.ENTFILE_ACCESSKEYSECRET;
        String bucketName = OssConfig.ENTFILE_BUCKETNAME;
        Map view = new HashMap();
        view.put("msg", "上传成功");
        view.put("code", "00");
        // 日志配置,OSS Java SDK使用log4j记录错误信息。示例程序会在工程目录下生成“oss-demo.log”日志文件,默认日志级别是INFO。
        // 日志的配置文件是“conf/log4j.properties”,如果您不需要日志,可以没有日志配置文件和下面的日志配置。
        /*PropertyConfigurator.configure("conf/log4j.properties");*/
        logger.info("Started");

        //OSSCredentialProvider credentialProvider = new OSSPlainTextAKSKCredentialProvider(accessKey, screctKey);

        ClientConfiguration conf = new ClientConfiguration();
        conf.setConnectionTimeout(15 * 1000); // 连接超时,默认15秒
        conf.setSocketTimeout(15 * 1000); // socket超时,默认15秒
        conf.setMaxErrorRetry(2); // 失败后最大重试次数,默认2次
        // 生成OSSClient,您可以指定一些参数,详见“SDK手册 > Java-SDK > 初始化”,
        // 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/init.html?spm=5176.docoss/sdk/java-sdk/get-start
        oss = new OSSClient(endpoint, accessKeyId, accessKeySecret);
        try {
            // 判断Bucket是否存在。详细请参看“SDK手册 > Java-SDK > 管理Bucket”。
            // 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
            if (oss.doesBucketExist(bucketName)) {
                logger.info("您已经创建Bucket:" + bucketName + "。");
            } else {
                logger.info("您的Bucket不存在,创建Bucket:" + bucketName + "。");
                view.put("msg", "您的Bucket不存在,创建Bucket:" + bucketName + "。");
                view.put("code", "01");
                return view;
                // 创建Bucket。详细请参看“SDK手册 > Java-SDK > 管理Bucket”。
                // 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
                //ossClient.createBucket(bucketName);
            }

            // 文件存储入OSS,Object的名称为fileKey。详细请参看“SDK手册 > Java-SDK > 上传文件”。
            // 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/upload_object.html?spm=5176.docoss/user_guide/upload_object
            //String fileKey = "README.md";
            //ossClient.putObject(bucketName, fileKey, new File("README.md"));
            for (Oss ossE : ossList) {
                PutObjectResult result = oss.putObject(bucketName, ossE.getKey(), new ByteArrayInputStream(ossE.getValue()));
                String eTag = result.getETag();
                logger.info("Object:" + ossE.getKey() + "存入OSS成功。");
                oss.setObjectAcl(bucketName, ossE.getKey(), CannedAccessControlList.PublicRead);
            }
        } catch (OSSException oe) {
            view.put("msg", "上传失败");
            view.put("code", "01");
            oe.printStackTrace();
        } catch (ClientException ce) {
            view.put("msg", "上传失败");
            view.put("code", "01");
            ce.printStackTrace();
        } catch (Exception e) {
            view.put("msg", "上传失败");
            view.put("code", "01");
            e.printStackTrace();
        } finally {
            oss.shutdown();
        }

        logger.info("Completed");
        return view;
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值