阿里云 OSS 服务是没有文件夹这个概念的,所有元素都是以对象来存储。OSS 控制台中的文件夹本质上来说是创建了一个大小为 0 并以”/“结尾的对象用于同类文件的归类操作和批处理,同时控制台默认将以”/“结尾的对象作为文件夹形式展现。该对象同样可以上传及下载。用户可以在 OSS 控制台中,采用同 Windows 文件夹的基本操作使用 OSS 文件夹。
[backcolor=transparent]注意:对于任何一个以”/“结尾的对象,不论该对象是否存有数据,在控制台中都是以文件夹的方式显示,用户只能通过 API 或 SDK 的方式来下载该对象。对模拟文件夹具体的实现与操作可以参考:
- API:Get Bucket
- SDK:Java SDK-Object 中 [backcolor=transparent]文件夹模拟功能
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在阿里云OSS服务中,实现文件夹功能的机制如下:
理解OSS中的“文件夹”概念:
/
结尾的特殊对象。控制台会将这类对象视为文件夹显示,便于组织和管理文件。通过API与SDK模拟文件夹操作:
ListObjectsV2Request
可以列举指定前缀(prefix)的对象,通过设置prefix为“文件夹”名称,结合delimiter为/
,可以实现类似列出文件夹内容的操作。// 假设使用Java SDK
// 初始化OSSClient
// ...
// 列举"fun/movie/"这个"文件夹"下的所有对象
ListObjectsV2Request request = new ListObjectsV2Request(bucketName);
request.setPrefix("fun/movie/");
request.setDelimiter("/");
// 调用listObjectsV2方法获取结果
ListObjectsV2Result result = ossClient.listObjectsV2(request);
控制台操作步骤:
/
结尾,然后确认创建。注意事项:
/
结尾的对象:这些代表“文件夹”的对象虽然在控制台表现为文件夹,但它们是可以被上传和下载的。要下载这类特殊对象,需要通过API或SDK进行操作,控制台不直接提供下载功能。/
结尾的对象都会被视为文件夹展示,即使该对象内部包含数据。综上所述,阿里云OSS通过特定的对象命名规则和API/SDK操作,实现了文件夹的模拟功能,使得用户能够像操作传统文件系统一样管理存储在OSS中的文件和“文件夹”。