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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 一: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) {
}

 

  

 

欢迎大家一起说出自己的想法。
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
2月前
|
缓存 负载均衡 网络协议
阿里云DNS常见问题之某个地域访问不到如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
14天前
|
分布式计算 大数据 MaxCompute
MaxCompute产品使用合集之使用pyodps读取OSS(阿里云对象存储)中的文件的步骤是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5天前
|
存储 Serverless 对象存储
通过FC运行脚本下载文件到OSS
本文介绍了在阿里云中使用函数计算服务(Function Compute)从URL下载文件并存储到OSS(Object Storage Service)的步骤。首先,需开通函数计算服务并创建RAM角色,授权函数计算访问OSS权限。费用详情参考官方计费概述。操作步骤包括:登录OSS控制台,使用公共模板创建执行,配置参数并运行Python脚本,脚本负责从URL下载文件并上传至指定OSS Bucket。执行成功后,文件将出现在目标OSS Bucket中。
21 0
|
14天前
|
分布式计算 Java 大数据
MaxCompute产品使用合集之大数据计算MaxCompute外部表映射了oss中的csv文件,看到"\N"被解析为"N",是什么原因
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
14天前
|
运维 NoSQL Java
Serverless 应用引擎产品使用之在函数计算上部署Java服务并访问阿里云MongoDB如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
15 0
|
14天前
|
运维 监控 关系型数据库
Serverless 应用引擎产品使用之在阿里云函数计算(FC)中,要访问另一个账号的rds配置rds的白名单如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
30 0
|
15天前
|
运维 Java Serverless
Serverless 应用引擎产品使用之数据文件(例如sdxl)超过了OSS(对象存储服务)的单个上传大小限制(5GB)如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
21 1
|
26天前
|
SQL 消息中间件 存储
对象存储OSS产品常见问题之恢复文件覆盖如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
43 0
|
26天前
|
存储 数据可视化 安全
对象存储OSS产品常见问题之有几十亿个txt文件,单个4kb,使用oss如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
54 11
|
26天前
|
存储 监控 开发工具
对象存储OSS产品常见问题之python sdk中的append_object方法支持追加上传xls文件如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
55 9