OSS怎样上传下载文件夹(目录)?

与传统文件系统中的层级结构不同,OSS内部使用扁平结构存储数据,即所有数据均以对象(Object)的形式保存在存储空间(Bucket)中。为方便管理,OSS管理控制台将所有文件名以正斜线(/)结尾的文件显示为文件夹,实现类似于Windows文件夹的基本功能。本文介绍上传及下载文件夹的多种方式。

使用OSS管理控制台

  • 上传文件夹:在上传时,直接将文件夹拖拽到上传区域,即可保留文件夹的结构。具体操作,请参见简单上传

  • 下载文件夹:OSS控制台不支持直接下载文件夹,您可以在本地创建文件夹后,将Bucket中的文件批量下载到指定文件夹中。具体操作,请参见简单下载

使用阿里云SDK

  • 上传文件夹:SDK不支持直接上传文件夹。您可以通过在上传时设置相同的文件名前缀,并使用正斜线(/)隔开的方式实现将文件上传至同一个文件夹。例如上传example1.txt、example2.txt以及example3.txt三个文件到dir文件夹。以Java SDK为例,您需要在上传时将objectName分别设置为dir/example1.txtdir/example2.txt以及dir/example3.txt

  • 下载文件夹:SDK不支持直接下载文件夹,仅支持通过指定文件完整路径的方式将文件夹下的文件下载到本地。假设您需要将某个Bucket中文件夹folder下包含的所有文件下载到本地local文件夹:

    • 已知文件夹folder下包含的所有文件

      例如,folder文件夹下包含example1.jpgexample2.jpg两个文件。以Java SDK为例,您需要在下载时将objectName分别设置为folder/example1.jpgfolder/example2.jpg,本地路径pathName分别设置为local/folder/example1.jpglocal/folder/example2.jpg

    • 未知文件夹folder下包含哪些文件

      1. 通过GetBucket (ListObjects)接口获取该文件夹下的所有文件。

      2. 参照以上方法分别设置objectName以及pathName的完整路径。

关于各语言SDK上传和下载文件的示例代码,请参见SDK简介

使用图形化管理工具ossbrowser

  • 上传文件夹:在指定的Bucket或目录内,单击目录,然后选中需要上传的文件夹。您也可以直接将文件夹拖拽到ossbrowser中。具体操作,请参见上传文件夹

  • 下载文件夹:单击指定文件夹右侧的下载,即可下载文件夹。具体操作,请参见下载文件夹

使用命令行工具ossutil

  • 上传文件夹:在上传文件时携带-r选项上传文件夹。具体操作,请参见上传文件夹

  • 下载文件夹:在下载文件时携带-r选项下载文件夹。具体操作,请参见下载文件夹