OSS云文件上传开发入门教程

2024/11/28 21:03:09

本文主要是介绍OSS云文件上传开发入门教程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

概述

本文详细介绍了如何使用阿里云OSS进行云文件上传开发,包括初始化OSS客户端、设置Bucket名称和地区、上传文件、文件管理和操作以及设置文件访问权限等步骤。文中提供了丰富的代码示例,帮助开发者快速掌握OSS云文件上传开发的全过程。

引入阿里云OSS服务

阿里云OSS(Object Storage Service)是一种可扩展的分布式云存储服务,提供了一个稳定、安全、高效的存储解决方案。OSS旨在为网站、移动应用、音视频处理、企业应用等场景提供存储服务,支持图片、音视频、文本、日志等多种数据类型的存储。

1.1 什么是阿里云OSS服务

阿里云OSS服务是一种分布式对象存储系统,它允许用户存储和访问各种类型的数据,包括但不限于图片、音视频、日志等。OSS提供了高可用性和高可靠性的数据存储,支持多种编程语言,包括Java、Python、Node.js等。

阿里云OSS服务的核心功能包括:

  • 高可用性:OSS服务设计为高度可用,确保数据不会丢失。
  • 高可靠性:数据分布在多个数据中心,确保数据的安全性和持久性。
  • 可扩展性:支持存储PB级别的数据,满足大规模应用的需求。
  • 安全性:支持多种安全认证方式,确保数据的安全性。
  • 易用性:提供丰富的API接口,可以快速集成到各种应用中。

1.2 注册阿里云账号并开通OSS服务

  1. 访问阿里云官网(https://www.aliyun.com/),点击“立即注册”创建一个新账号。
  2. 登录阿里云控制台。
  3. 在左侧导航栏中选择“产品”分类,然后找到并点击“OSS”服务。
  4. 点击“创建存储空间”按钮,输入Bucket名称和选择地理位置,然后点击“确定”创建Bucket。

阿里云账号注册和OSS服务开通的步骤如下:

  1. 登录阿里云官网或使用已有账号登录。
  2. 在控制台中选择“对象存储OSS”,点击“创建Bucket”。
  3. 按需填写Bucket名称和选择合适的位置,点击“创建”。
  4. 创建完成后,可以在列表中查看新创建的Bucket。

1.3 获取AccessKey ID和AccessKey Secret

在使用阿里云OSS服务之前,需要获取AccessKey ID和AccessKey Secret。这些凭证将用于身份验证和授权。

  1. 在阿里云控制台中,点击“访问控制RAM”,然后点击“用户管理”。
  2. 在用户列表中选择或创建一个用户,点击“查看AccessKey”。
  3. 点击“创建AccessKey”,并保存生成的AccessKey ID和AccessKey Secret。

获取AccessKey ID和AccessKey Secret的步骤如下:

  1. 登录阿里云控制台。
  2. 在左侧导航栏中选择“访问控制RAM”,然后点击“用户管理”。
  3. 在用户列表中选择或创建一个用户。
  4. 点击所选用户的“查看AccessKey”按钮,然后点击“创建AccessKey”。
  5. 保存生成的AccessKey ID和AccessKey Secret,这两个凭证将用于后续的API调用。

获取AccessKey ID和AccessKey Secret的示例代码如下:

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;

public class AccessKeyExample {
    public static void main(String[] args) {
        // 创建OSSClient实例。
        String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        // AccessKey ID和AccessKey Secret。
        String accessKeyId = "<yourAccessKeyId>";
        String accessKeySecret = "<yourAccessKeySecret>";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        // 关闭OSSClient。
        ossClient.shutdown();
    }
}
初始化OSS客户端

在使用阿里云OSS服务之前,需要初始化OSS客户端。本节将详细介绍如何使用阿里云SDK初始化OSS客户端,以及如何设置Bucket名称和地区。

2.1 使用阿里云SDK初始化OSS客户端

使用阿里云SDK初始化OSS客户端是使用OSS服务的基础步骤。阿里云提供了多种SDK,支持不同的编程语言。这里以Java语言为例进行介绍。

首先,需要在项目中引入阿里云SDK。对于Java项目,可以通过Maven或Gradle添加依赖。

Maven依赖

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

Gradle依赖

implementation 'com.aliyun.oss:aliyun-sdk-oss:3.10.1'

接下来,通过以下代码初始化OSS客户端:

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;

public class OSSClientInit {
    public static void main(String[] args) {
        // Endpoint以杭州为例,其它Region请按实际情况填写。
        String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM子账号,避免不必要的伤害。
        String accessKeyId = "<yourAccessKeyId>";
        String accessKeySecret = "<yourAccessKeySecret>";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        // 关闭OSSClient。
        ossClient.shutdown();
    }
}

2.2 设置Bucket名称和地区

在初始化OSS客户端后,需要指定Bucket名称和地区。Bucket名称是一个全局唯一的字符串,用于标识存储空间。地区选择应根据实际应用的需求来选择,以确保数据的访问速度和成本最优。

设置Bucket名称和地区的示例代码如下:

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;

public class OSSClientInitWithBucket {
    public static void main(String[] args) {
        // Endpoint以杭州为例,其它Region请按实际情况填写。
        String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM子账号,避免不必要的伤害。
        String accessKeyId = "<yourAccessKeyId>";
        String accessKeySecret = "<yourAccessKeySecret>";
        // Bucket名称,全局唯一。
        String bucketName = "<yourBucketName>";
        // Bucket所在地区。
        String region = "oss-cn-hangzhou";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        // 判断Bucket是否存在。
        boolean isExist = ossClient.doesBucketExist(bucketName);
        if (isExist) {
            System.out.println(bucketName + " Bucket 存在");
        } else {
            System.out.println(bucketName + " Bucket 不存在");
            // 如果Bucket不存在,可以创建一个新Bucket。
            ossClient.createBucket(bucketName);
            System.out.println(bucketName + " Bucket 创建成功");
        }

        // 关闭OSSClient。
        ossClient.shutdown();
    }
}
文件上传指南

在初始化OSS客户端并设置Bucket名称和地区后,可以开始上传文件。本节将介绍如何选择合适的文件格式,编写文件上传代码,以及如何处理上传过程中可能出现的异常。

3.1 选择合适的文件格式

在上传文件之前,需要选择合适的文件格式。常见的文件格式包括图片(如JPEG、PNG)、音视频(如MP4、MP3)以及文本文件(如TXT、CSV)。选择文件格式时,应考虑文件的用途和兼容性。

阿里云OSS支持多种常见的文件格式,包括但不限于:

  • 图片:JPEG、PNG、SVG
  • 视频:MP4、MOV、AVI
  • 音频:MP3、WAV、FLAC
  • 文本:TXT、CSV、JSON
  • 压缩文件:ZIP、RAR、TAR

3.2 编写文件上传代码

在编写文件上传代码之前,需要确保已经初始化了OSS客户端,并设置了Bucket名称和地区。接下来,可以通过OSS客户端调用putObject方法上传文件。

如下代码展示了如何上传本地文件到OSS:

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import java.io.File;

public class FileUploadExample {
    public static void main(String[] args) {
        // Endpoint以杭州为例,其它Region请按实际情况填写。
        String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM子账号,避免不必要的伤害。
        String accessKeyId = "<yourAccessKeyId>";
        String accessKeySecret = "<yourAccessKeySecret>";
        // Bucket名称,全局唯一。
        String bucketName = "<yourBucketName>";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        // 本地文件路径。
        String localFile = "C:\\local\\path\\localfile.txt";
        // OSS文件路径。
        String fileKey = "path/to/remote/file.txt";

        try {
            // 上传文件到OSS。
            ossClient.putObject(bucketName, fileKey, new File(localFile));
            System.out.println(fileKey + " 文件上传成功");
        } catch (Exception e) {
            System.out.println("文件上传失败");
            e.printStackTrace();
        } finally {
            // 关闭OSSClient。
            ossClient.shutdown();
        }
    }
}

3.3 处理上传过程中可能出现的异常

在文件上传过程中,可能会出现各种异常情况,包括网络问题、权限不足等。为了确保代码的健壮性,需要在上传过程中捕获并处理异常。

以下代码展示了如何捕获并处理上传文件时可能出现的异常:

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import java.io.File;
import java.util.concurrent.ExecutionException;

public class FileUploadWithExceptionHandling {
    public static void main(String[] args) {
        // Endpoint以杭州为例,其它Region请按实际情况填写。
        String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM子账号,避免不必要的伤害。
        String accessKeyId = "<yourAccessKeyId>";
        String accessKeySecret = "<yourAccessKeySecret>";
        // Bucket名称,全局唯一。
        String bucketName = "<yourBucketName>";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        // 本地文件路径。
        String localFile = "C:\\local\\path\\localfile.txt";
        // OSS文件路径。
        String fileKey = "path/to/remote/file.txt";

        try {
            // 上传文件到OSS。
            ossClient.putObject(bucketName, fileKey, new File(localFile));
            System.out.println(fileKey + " 文件上传成功");
        } catch (ExecutionException | InterruptedException e) {
            System.out.println("文件上传失败");
            e.printStackTrace();
        } finally {
            // 关闭OSSClient。
            ossClient.shutdown();
        }
    }
}

上述代码中,使用了try-catch结构来捕获并处理ExecutionExceptionInterruptedException,确保上传过程中的异常能够得到妥善处理。

文件管理和操作

在文件上传成功后,可以使用OSS客户端进行文件的管理和操作。本节将介绍如何查看已上传文件列表,修改文件名,以及删除文件。

4.1 查看已上传文件列表

在上传文件后,可以通过OSS客户端获取已上传文件的列表。阿里云OSS提供了列出Bucket中所有文件的方法,可以方便地查看已上传的文件。

查看已上传文件列表的示例代码如下:

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.OSSObjectSummary;

import java.util.List;

public class ListFilesExample {
    public static void main(String[] args) {
        // Endpoint以杭州为例,其它Region请按实际情况填写。
        String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM子账号,避免不必要的伤害。
        String accessKeyId = "<yourAccessKeyId>";
        String accessKeySecret = "<yourAccessKeySecret>";
        // Bucket名称,全局唯一。
        String bucketName = "<yourBucketName>";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        // 获取Bucket名称下所有文件的列表。
        List<OSSObjectSummary> objectSummaries = ossClient.listObjects(bucketName).getObjectSummaries();

        for (OSSObjectSummary objectSummary : objectSummaries) {
            System.out.println("文件名:" + objectSummary.getKey());
        }

        // 关闭OSSClient。
        ossClient.shutdown();
    }
}

4.2 修改文件名

在OSS中,可以通过覆盖文件的方式实现文件名的修改。将新文件上传到目标路径,然后删除原文件,即可实现文件名的修改。

修改文件名的示例代码如下:

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import java.io.File;

public class RenameFileExample {
    public static void main(String[] args) {
        // Endpoint以杭州为例,其它Region请按实际情况填写。
        String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM子账号,避免不必要的伤害。
        String accessKeyId = "<yourAccessKeyId>";
        String accessKeySecret = "<yourAccessKeySecret>";
        // Bucket名称,全局唯一。
        String bucketName = "<yourBucketName>";
        // 旧文件名。
        String oldFileKey = "path/to/old/file.txt";
        // 新文件名。
        String newFileKey = "path/to/new/file.txt";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        // 本地文件路径。
        String localFile = "C:\\local\\path\\localfile.txt";

        try {
            // 上传新文件。
            ossClient.putObject(bucketName, newFileKey, new File(localFile));
            // 删除旧文件。
            ossClient.deleteObject(bucketName, oldFileKey);
            System.out.println("文件重命名成功,新文件名:" + newFileKey);
        } catch (Exception e) {
            System.out.println("文件重命名失败");
            e.printStackTrace();
        } finally {
            // 关闭OSSClient。
            ossClient.shutdown();
        }
    }
}

4.3 删除文件

在OSS中,可以通过调用deleteObject方法来删除文件。删除文件时需要注意,删除操作是不可逆的,一旦删除,文件将无法恢复。

删除文件的示例代码如下:

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;

public class DeleteFileExample {
    public static void main(String[] args) {
        // Endpoint以杭州为例,其它Region请按实际情况填写。
        String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM子账号,避免不必要的伤害。
        String accessKeyId = "<yourAccessKeyId>";
        String accessKeySecret = "<yourAccessKeySecret>";
        // Bucket名称,全局唯一。
        String bucketName = "<yourBucketName>";
        // 要删除的文件路径。
        String fileKey = "path/to/delete/file.txt";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        try {
            // 删除文件。
            ossClient.deleteObject(bucketName, fileKey);
            System.out.println(fileKey + " 文件删除成功");
        } catch (Exception e) {
            System.out.println("文件删除失败");
            e.printStackTrace();
        } finally {
            // 关闭OSSClient。
            ossClient.shutdown();
        }
    }
}
文件访问权限设置

在实际应用中,文件的访问权限设置是非常重要的。本节将介绍如何设置文件的公共读访问权限、私有读写访问权限,以及如何使用签名URL访问文件。

5.1 设置文件的公共读访问权限

设置文件为公共读访问权限后,任何人都可以通过公开URL访问文件。这对于需要公开分享的文件非常有用。

设置文件为公共读访问权限的示例代码如下:

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.SetObjectAclRequest;

public class SetPublicReadExample {
    public static void main(String[] args) {
        // Endpoint以杭州为例,其它Region请按实际情况填写。
        String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM子账号,避免不必要的伤害。
        String accessKeyId = "<yourAccessKeyId>";
        String accessKeySecret = "<yourAccessKeySecret>";
        // Bucket名称,全局唯一。
        String bucketName = "<yourBucketName>";
        // 文件路径。
        String fileKey = "path/to/file.txt";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        try {
            // 设置文件为公共读访问权限。
            ossClient.setObjectAcl(bucketName, fileKey, new SetObjectAclRequest(bucketName, fileKey).withAcl(com.aliyun.oss.OSS.CannedAccessControlList.PublicRead));
            System.out.println(fileKey + " 文件设置为公共读权限成功");
        } catch (Exception e) {
            System.out.println("文件设置为公共读权限失败");
            e.printStackTrace();
        } finally {
            // 关闭OSSClient。
            ossClient.shutdown();
        }
    }
}

5.2 设置文件的私有读写访问权限

设置文件为私有读写访问权限后,只有拥有特定权限的用户才能访问文件。这对于需要保护隐私或敏感数据的文件非常有用。

设置文件为私有读写访问权限的示例代码如下:

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.SetObjectAclRequest;

public class SetPrivateReadWriteExample {
    public static void main(String[] args) {
        // Endpoint以杭州为例,其它Region请按实际情况填写。
        String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM子账号,避免不必要的伤害。
        String accessKeyId = "<yourAccessKeyId>";
        String accessKeySecret = "<yourAccessKeySecret>";
        // Bucket名称,全局唯一。
        String bucketName = "<yourBucketName>";
        // 文件路径。
        String fileKey = "path/to/file.txt";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        try {
            // 设置文件为私有读写访问权限。
            ossClient.setObjectAcl(bucketName, fileKey, new SetObjectAclRequest(bucketName, fileKey).withAcl(com.aliyun.oss.OSS.CannedAccessControlList.Private));
            System.out.println(fileKey + " 文件设置为私有读写权限成功");
        } catch (Exception e) {
            System.out.println("文件设置为私有读写权限失败");
            e.printStackTrace();
        } finally {
            // 关闭OSSClient。
            ossClient.shutdown();
        }
    }
}

5.3 使用签名URL访问文件

签名URL是一种临时访问文件的方式,可以通过生成的URL在指定时间内访问文件。这对于需要控制访问时间的场景非常有用。

生成签名URL的示例代码如下:

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.GeneratePresignedUrlRequest;

import java.util.Date;

public class GeneratePresignedUrlExample {
    public static void main(String[] args) {
        // Endpoint以杭州为例,其它Region请按实际情况填写。
        String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM子账号,避免不必要的伤害。
        String accessKeyId = "<yourAccessKeyId>";
        String accessKeySecret = "<yourAccessKeySecret>";
        // Bucket名称,全局唯一。
        String bucketName = "<yourBucketName>";
        // 文件路径。
        String fileKey = "path/to/file.txt";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        try {
            // 生成签名URL。
            Date expiration = new Date(System.currentTimeMillis() + 3600 * 1000); // URL有效期一小时。
            GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, fileKey);
            request.setExpiration(expiration);
            java.net.URL url = ossClient.generatePresignedUrl(request);

            System.out.println("签名URL:" + url.toString());
        } catch (Exception e) {
            System.out.println("生成签名URL失败");
            e.printStackTrace();
        } finally {
            // 关闭OSSClient。
            ossClient.shutdown();
        }
    }
}

上述代码中,通过GeneratePresignedUrlRequest生成了一个有效期为一小时的签名URL,可以通过该URL在指定时间内访问文件。

实际项目中的应用

在实际项目中,阿里云OSS服务可以广泛应用于各种场景,如上传用户头像、上传文章图片、批量上传文件等。本节将通过实际示例演示如何在项目中应用阿里云OSS服务。

6.1 上传用户头像

在用户注册或登录时,可以将用户上传的头像保存到阿里云OSS。

上传用户头像的示例代码如下:

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import java.io.File;

public class UploadUserProfilePicture {
    public static void main(String[] args) {
        // Endpoint以杭州为例,其它Region请按实际情况填写。
        String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM子账号,避免不必要的伤害。
        String accessKeyId = "<yourAccessKeyId>";
        String accessKeySecret = "<yourAccessKeySecret>";
        // Bucket名称,全局唯一。
        String bucketName = "<yourBucketName>";
        // 用户ID,用于生成文件名。
        String userId = "user123";
        // 本地头像路径。
        String localAvatarPath = "C:\\local\\path\\avatar.jpg";
        // OSS头像路径。
        String avatarKey = "path/to/avatar/" + userId + ".jpg";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        try {
            // 上传头像。
            ossClient.putObject(bucketName, avatarKey, new File(localAvatarPath));
            System.out.println(userId + " 用户头像上传成功");
        } catch (Exception e) {
            System.out.println("头像上传失败");
            e.printStackTrace();
        } finally {
            // 关闭OSSClient。
            ossClient.shutdown();
        }
    }
}

6.2 上传文章图片

在发布文章时,可以将文章中的图片保存到阿里云OSS。

上传文章图片的示例代码如下:

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import java.io.File;

public class UploadArticleImage {
    public static void main(String[] args) {
        // Endpoint以杭州为例,其它Region请按实际情况填写。
        String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM子账号,避免不必要的伤害。
        String accessKeyId = "<yourAccessKeyId>";
        String accessKeySecret = "<yourAccessKeySecret>";
        // Bucket名称,全局唯一。
        String bucketName = "<yourBucketName>";
        // 文章ID,用于生成文件名。
        String articleId = "article456";
        // 本地图片路径。
        String localImagePath = "C:\\local\\path\\image.jpg";
        // OSS图片路径。
        String imageKey = "path/to/images/" + articleId + ".jpg";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        try {
            // 上传图片。
            ossClient.putObject(bucketName, imageKey, new File(localImagePath));
            System.out.println(articleId + " 文章图片上传成功");
        } catch (Exception e) {
            System.out.println("图片上传失败");
            e.printStackTrace();
        } finally {
            // 关闭OSSClient。
            ossClient.shutdown();
        }
    }
}

6.3 批量上传文件

在实际项目中,可能需要批量上传多个文件。可以通过循环遍历文件列表并上传文件来实现批量上传。

批量上传文件的示例代码如下:

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import java.io.File;
import java.util.Arrays;
import java.util.List;

public class BatchUploadFiles {
    public static void main(String[] args) {
        // Endpoint以杭州为例,其它Region请按实际情况填写。
        String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM子账号,避免不必要的伤害。
        String accessKeyId = "<yourAccessKeyId>";
        String accessKeySecret = "<yourAccessKeySecret>";
        // Bucket名称,全局唯一。
        String bucketName = "<yourBucketName>";
        // 本地文件路径列表。
        List<String> localFiles = Arrays.asList(
                "C:\\local\\path\\file1.txt",
                "C:\\local\\path\\file2.txt",
                "C:\\local\\path\\file3.txt"
        );
        // OSS文件路径列表。
        List<String> ossKeys = Arrays.asList(
                "path/to/file1.txt",
                "path/to/file2.txt",
                "path/to/file3.txt"
        );

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        try {
            for (int i = 0; i < localFiles.size(); i++) {
                String localFile = localFiles.get(i);
                String fileKey = ossKeys.get(i);

                // 上传文件。
                ossClient.putObject(bucketName, fileKey, new File(localFile));
                System.out.println(fileKey + " 文件上传成功");
            }
        } catch (Exception e) {
            System.out.println("文件上传失败");
            e.printStackTrace();
        } finally {
            // 关闭OSSClient。
            ossClient.shutdown();
        }
    }
}


这篇关于OSS云文件上传开发入门教程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程