开发者社区> 曾将> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 一:pom添加以来jar com.aliyun.oss aliyun-sdk-oss 2.8.3     当然,也能下载jar导入项目; 二:关于文件上传的参数配置 新建 properties文件 ...
+关注继续查看

 

一: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 - 阿里云 OSS 文件下载通用办法(支持跨域)
JS - 阿里云 OSS 文件下载通用办法(支持跨域)
542 0
java 上传 下载文件工具类
java 上传 下载文件工具类
232 0
阿里云OSS对象存储服务上传失败问题之一
OSS是阿里云提供一个对象存储服务,有着稳定高效的特点,但在操作时有些问题还是必须要注意一下的
611 0
Linux备份到阿里云对象存储 OSS的脚本
使用RESTful API 可以在互联网任何位置存储和访问,容量和处理能力弹性扩展,多种存储类型供选择全面优化存储成本。
1977 0
快速将企业海量文件数据迁移到阿里云OSS
对象云存储因为下面两个功能特性,得到了海量使用: 可以直接http调用 可靠、安全、按量使用阿里云OSS在各大云服务商中,通过可靠、高性价比的服务得到了大量用户的仁科。 企业用户在企业内部或者传统IDC机房中,累计了海量的文件数据,如何快速将TB级别甚至PB文件数据迁移到OSS,是一个IT挑战任务。
2137 0
java操作阿里云的对象存储OSS
官网:: 对象存储(Object Storage Service,简称OSS) 以下博客简单介绍连接阿里云的OSS,新建Bucket,删除Bucket,向阿里云的OSS存储中存储单个文件,获取单个文件,删除单个文件等功能。 Api:: 开放式存储(OSS)Java API手册 1.0 documentation 以下为pom依赖: <!-- aliyun oss --
12810 0
+关注
65
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载