Ruby S3:如何在多个目录中按名称搜索/查找文件?
我在s3上有一个存储桶,里面有很多图像(几十万)。每个图像都有一个非常唯一的文件名(一个长的散列名称),并存储在根据数据库中相应的对象id命名的子目录中 一个简化的例子:Ruby S3:如何在多个目录中按名称搜索/查找文件?,ruby,amazon-s3,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已经更改,而子目录的名称却没有更改。这意味着,根据我
/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
)
注意:关于移动文件的部分应该非常简单,最大的问题是如何有效地搜索和找到这些图像的路径,在那里我知道名称,但不知道当前目录
我喜欢ruby,但我很乐意使用任何东西
顺便说一句,我看到了一些关于亚马逊云搜索的内容,但我不知道这是否可以用于此..没有简单的方法只列出带有特定后缀的键
您应该使用该方法遍历所有常用前缀(文件夹),以找到与您要查找的文件名对应的对象。正如提示:S3中没有“文件夹”这样的东西。您所调用的文件夹只不过是文件名的前缀。请看:好的,很好,但这如何解决我的问题呢?我会尝试使用GET Bucket(List Objects)API调用()来处理arround。如果需要,您可以指定前缀,但我认为您的情况不会是这样。