• 上传文件到阿里云OSS对象存储,查询访问地址,删除文件


    一:pom添加以来jar

        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>2.8.3</version>
        </dependency>

      当然,也能下载jar导入项目;

    二:关于文件上传的参数配置

    新建 properties文件

    三:在业务逻辑层获取阿里云对象

      1:先获取属性文件

    final static String endpoint = OssUtil.getConfig("contract");
        final static String accessKeyId = OssUtil.getConfig("accessKeyIdContract");
        final static String accessKeySecret = OssUtil.getConfig("accessKeySecretContract");
        final static String bucketName = OssUtil.getConfig("bucketName4C");

      2:属性文件的读取方法;

      

    public class OssUtil {
        protected static Logger logger = LogManager.getLogger(OssUtil.class);
    
        public static String getConfig(String key) {
            String value = "";
            OssUtil propertiesUtil = new OssUtil();
            InputStream in = null;
            Properties props = new Properties();
            in = propertiesUtil.getClass().getResourceAsStream("/oss.properties");
            try {
                props.load(in);
            } catch (IOException e) {
                e.printStackTrace();
                logger.error("getConfig io error:", e);
            } finally {
                if (in != null) {
                    try {
                        in.close();
                    } catch (IOException e2) {
                        e2.printStackTrace();
                        logger.error("close io error:", e2);
                    }
                }
            }
            value = props.getProperty(key);
            logger.info("property info :" + key + ":" + value);
            System.out.println(value);
            return value;
        }
        
    }

    四:判断你要上传的文件是不是存在

    @Override
        public boolean existFileInOss(String fileName) {
            // TODO Auto-generated method stub
            // 创建OSSClient实例
            OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
            // Object是否存在
            boolean found = ossClient.doesObjectExist(bucketName, fileName);
            // 关闭client
            ossClient.shutdown();
            return found;
        }

    五:上传方法

        @Override
        public void uploadFile(MultipartFile file,String fileId) {
            //String fileName =file.getOriginalFilename(); 
            // 创建OSSClient实例
            OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
            // 上传文件流
            try {
                ossClient.putObject(bucketName, fileId, file.getInputStream());
            } catch (OSSException e) {
                e.printStackTrace();
            } catch (ClientException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            // 关闭client
            ossClient.shutdown();
        }

    六:获取文件访问地址

    @Override
        public String getFileUrl(String fileId) {
            //服务器端生成url签名字串
            OSSClient Server  = new OSSClient(endpoint,  accessKeyId, accessKeySecret);
            Date expiration = null;
            expiration = new Date(System.currentTimeMillis()+1800000);
            //logger.debug("请求的fileid: " + fileId);
            GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, fileId, HttpMethod.GET);
            //设置过期时间
            request.setExpiration(expiration);
            // 生成URL签名(HTTP GET请求)
            URL signedUrl = Server.generatePresignedUrl(request);
            //logger.debug("oss文件url: " + signedUrl);
            return signedUrl.toString();
        }

    七:删除文件

    // 删除文件
            //ossClient.deleteObject(bucketName, "文件的全路径,如:cia/merged.pdf");  

    八:控制台接收文件,调用业务层

    public @ResponseBody String Upload(HttpServletRequest request, HttpServletResponse response,
                BsPayBussiness bussinessm, @RequestParam("file") MultipartFile file) {
    }

      

  • 相关阅读:
    Js/Jquery获取iframe中的元素
    js常用技巧汇总
    jquery常用技巧
    Tomcat远程调试
    常用SQL
    CRM-stark组件
    面试题-linux基础
    vue2-通过axios实现数据请求
    Vue01
    面试题之python基础
  • 原文地址:https://www.cnblogs.com/GH0522/p/9567150.html
Copyright © 2020-2023  润新知