minio查询桶中文件,桶目录中文件
Posted 寂寞旅行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了minio查询桶中文件,桶目录中文件相关的知识,希望对你有一定的参考价值。
文章目录
前言
文章再续,书接上文 minio进阶分页查询
说到了文件,可以实现分页查询,然后上次查询的是桶中的文件列表,这次遇到了需要数据隔离的文件,也就是需要在桶中再次建立文件夹;然后查询文件桶中的文件夹中的文件列表;
一、文件桶中的文件夹是什么?
minio的桶中既可以放文件夹,也可以直接放文件
例如本截图中
- 桶: nubula
- 文件夹 dy 文件夹中可以继续放文件
- 文件 销轴9.png
二、文件查询
1.桶中文件查询
仔细看上文中,其实查询重点就是这一句,构造查询参数
Iterable<Result<Item>> results = minioClient.listObjects(ListObjectsArgs.builder().bucket(minioConfig.getBucketName()).build());
2.桶中文件夹中的文件查询
代码如下(示例):
Iterable<Result<Item>> results = minioClient.listObjects(ListObjectsArgs.builder().prefix("dy/").bucket(minioConfig.getBucketName()).build());
这个文件夹作为 .prefix 传进去,一定要加 斜杠 / 否则只能查到桶的文件夹名称以及桶下的文件列表,想获取文件夹下的文件列表,必须加 / ;
既然是从文件夹中获取,那么上传文件的构造参数也是如此,也要加入前缀
PutObjectArgs args = PutObjectArgs.builder().bucket(minioConfig.getBucketName()).object("dy/" + fileName).stream(file.getInputStream(), file.getSize(), -1).contentType(file.getContentType()).build();
总结
由于需要实现此功能,查了很多文件,都没有找到合适的解答,又看了minio文档,也是没有找到合适的解释,试过了 ,最后只能一个个试
终于算是解决了此次问题,做个记录,为后续方便;
我们如何为 Amazon S3 存储桶中的文件夹设置 CORS
【中文标题】我们如何为 Amazon S3 存储桶中的文件夹设置 CORS【英文标题】:How can we set CORS for folders in Amazon S3 Buckets 【发布时间】:2016-02-06 06:00:20 【问题描述】:我已经对 Bucket 设置了权限,并且 CORS 标头设置在存储桶根目录中的任何文件上,但没有设置在 Bucket 中文件夹内的文件上。有没有办法在文件夹内的文件上设置 CORS?
【问题讨论】:
【参考方案1】:如果您在存储桶上配置了 CORS,则该配置对存储桶中的 所有 文件有效。 S3 对 CORS 没有其他选择。如果根目录之外的文件似乎没有激活 CORS,那么您几乎可以肯定看到缓存的响应来自 S3 以外的其他地方(它本身不缓存任何内容)。
【讨论】:
【参考方案2】:我知道这是旧的,但它可能会有所帮助。由于缓存响应,CORS 可能来自 Cloudfront。
要从 Cloudfront 分发中删除缓存文件,您可以直接在 AWS Cli -> Invalidations 中转到 CloudFront 分发,然后使用 /*
创建一个失效。这将从根目录中删除所有缓存的对象
【讨论】:
以上是关于minio查询桶中文件,桶目录中文件的主要内容,如果未能解决你的问题,请参考以下文章