与传统文件系统中的层级结构不同,OSS内部使用扁平结构存储数据,即所有数据均以对象(Object)的形式保存在存储空间(Bucket)中。为方便管理,OSS管理控制台将所有文件名以正斜线(/)结尾的文件显示为文件夹,实现类似于Windows文件夹的基本功能。本文介绍上传及下载文件夹的多种方式。
使用OSS管理控制台
使用阿里云SDK
- 上传文件夹:SDK不支持直接上传文件夹。您可以通过在上传时设置相同的文件名前缀,并使用正斜线(/)隔开的方式实现将文件上传至同一个文件夹。例如上传example1.txt、example2.txt以及example3.txt三个文件到dir文件夹。以Java SDK为例,您需要在上传时将objectName分别设置为dir/example1.txt、dir/example2.txt以及dir/example3.txt。
- 下载文件夹:SDK不支持直接下载文件夹,仅支持通过指定文件完整路径的方式将文件夹下的文件下载到本地。假设您需要将某个Bucket中文件夹folder下包含的所有文件下载到本地local文件夹:
- 已知文件夹folder下包含的所有文件
例如,folder文件夹下包含example1.jpg和example2.jpg两个文件。以Java SDK为例,您需要在下载时将objectName分别设置为folder/example1.jpg、folder/example2.jpg,本地路径pathName分别设置为local/folder/example1.jpg、local/folder/example2.jpg。
- 未知文件夹folder下包含哪些文件
- 通过ListObjects(GetBucket)接口获取该文件夹下的所有文件。
- 参照以上方法分别设置objectName以及pathName的完整路径。
- 已知文件夹folder下包含的所有文件
关于各语言SDK上传和下载文件的示例代码,请参见SDK简介。