S3:如何在多个目录中按名称搜索/查找文件?

时间:2012-12-03 16:42:39

标签: ruby amazon-s3

我在s3上有一个包含很多图像(几十万个)的存储桶。每个映像都有一个非常独特的文件名(长散列名称),并存储在根据数据库中相应对象ID命名的子目录中。

简化示例:

/bucket/1/red-1.jpg
/bucket/1/red-2.jpg
/bucket/1/red-3.jpg
/bucket/2/blue-1.jpg
/bucket/2/blue-2.jpg
/bucket/2/blue-3.jpg

现在的问题是,数据库中的id已被更改,而且子目录的名称没有。这意味着,根据我的数据库,图片red-1.jpg应该在/bucket/2中,但它实际上仍然位于/bucket/1。所以我需要能够在所有子目录中搜索,找到名为red-1.jpg的文件,并将其移动到正确的目录(在本例中为/bucket/2)。

注意:关于移动文件的部分应该非常简单,最大的问题是到目前为止我如何有效地搜索和查找这些图像的路径,我知道名称,但不知道当前目录。

我是红宝石,但我很乐意使用任何东西。

PS。我看到了一些有关亚马逊云搜索的内容,但我不知道是否可以用于此...

1 个答案:

答案 0 :(得分:1)

没有简单的方法只列出具有特定后缀的键。

您应该使用list_objects方法遍历所有公共前缀(文件夹),以找到与您要查找的文件名对应的对象。