使用对象存储OSS上传文件到阿里云

    技术2025-10-04  10

    1、注册阿里云,搜索找到对象存储OSS,创建Bucket,记住Bucket名称

    1、搜索对象存储OSS 2、创建Bucket

    2、点击Access Key获取到AccessKey ID和AccessKey Secret

    3、点击查看Bucket列表获取地域节点

    4、idea中引入相关依赖

    <dependencies> <!-- 阿里云oss依赖 --> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> </dependency> <!-- 日期工具栏依赖 --> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> </dependency> </dependencies> <properties> <aliyun.oss.version>2.8.3</aliyun.oss.version> <jodatime.version>2.10.1</jodatime.version> </properties>

    5、具体代码

    //ConstantPropertiesUtils.END_POINT 为上述获取的endpoint //ConstantPropertiesUtils.ACCESS_KEY_ID;为上述获取的KeyId //ConstantPropertiesUtils.ACCESS_KEY_SECRET;为上述获取的KeySecret //ConstantPropertiesUtils.BUCKET_NAME;为上述获取的bucketName public String uploadFileAvatar(MultipartFile file) {//MultipartFile 用来获取上传文件 // Endpoint以杭州为例,其它Region请按实际情况填写。 String endpoint = ConstantPropertiesUtils.END_POINT; // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID; String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET; String bucketName = ConstantPropertiesUtils.BUCKET_NAME; OSS ossClient = null; try { // 创建OSSClient实例。 ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 获取上传文件流。 InputStream inputStream = file.getInputStream(); //获取文件名 String originalFilename = file.getOriginalFilename(); //在文件名称中拼接唯一的值,避免文件重名 String uuid = UUID.randomUUID().toString().replaceAll("-",""); originalFilename = originalFilename+uuid; //文件按照日期分类 //获取当前日期 String s = new DateTime().toString("yyyy/MM/dd"); originalFilename = s+"/"+originalFilename; //调用方法上传文件//1.bucket名称 2.文件名称 3.文件输入流 ossClient.putObject(bucketName, originalFilename, inputStream); ossClient.shutdown(); //把上传到阿里云的路径拼接 String url ="https://"+bucketName+"."+endpoint+"/"+originalFilename; return url; } catch (Exception e) { e.printStackTrace(); } // 关闭OSSClient。 return null; }

    可以写一个controller,然后进行测试,拿到的URL地址可以在浏览器直接下载查看

    Processed: 0.009, SQL: 9