Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 如何为s3存储桶中的每个文件创建文件夹?_Amazon S3 - Fatal编程技术网

Amazon s3 如何为s3存储桶中的每个文件创建文件夹?

Amazon s3 如何为s3存储桶中的每个文件创建文件夹?,amazon-s3,Amazon S3,是否可以为进入s3存储桶的每个文件创建一个文件夹,类似于我找到的这个简单的批处理脚本,如果你将这个.bat文件放在一个文件夹中并运行它,它会为每个文件创建一个文件夹。因此,基本上每次用户文件同步到我的s3存储桶时,它都会自动为每个文件创建一个文件夹 @echo off for %%i in (*) do ( if not "%%~ni" == "organize" ( md "%%~ni" && move "%%~i" "%%~ni" ) ) 首先要了解的是。S3中bu

是否可以为进入s3存储桶的每个文件创建一个文件夹,类似于我找到的这个简单的批处理脚本,如果你将这个.bat文件放在一个文件夹中并运行它,它会为每个文件创建一个文件夹。因此,基本上每次用户文件同步到我的s3存储桶时,它都会自动为每个文件创建一个文件夹

@echo off
for %%i in (*) do (
 if not "%%~ni" == "organize" (
  md "%%~ni" && move "%%~i" "%%~ni"
 )
)

首先要了解的是。S3中bucket中的所有内容都是一个文件,即UI sugar,用于复制文件系统的视觉体验。“文件夹”只不过是一个前缀,以
/
结尾(需要注意的是,当您创建一个空文件夹时,S3会创建一个不可见的文件,以便在该前缀处有要引用的内容)

因此,您试图实现的是有效地重命名文件,为每个文件指定一个唯一的前缀。您可以通过多种方式执行此操作:

如果希望在写入文件时发生,我建议在写入对象时使用哪个触发器,将其复制到具有所需前缀的新对象,并删除原始对象。当然,您需要确保不会在lambda本身写入的文件上触发-这可以通过写入从lambda触发器中排除的特定前缀(在文件特定前缀之前)来实现


如果您希望它作为一个批处理过程发生(如您提到的
bat
文件),您有更多的选择。您可以编写一个lambda函数来进行重命名,并将其连接到Cloudwatch触发器以按计划运行。您也可以使用。

Yo编写一个bash脚本。这是一个很好的回答。谢谢,我会尝试使用lambda触发器,但问题是我不是编码人员,有没有lambda触发器示例可以完成这一任务。很抱歉,我不知道有。这些作品当然在那里:。将lambda中的代码添加到排除的前缀,并添加唯一的前缀。删除原始文件。你能澄清一下你想要完成的最终结果吗?请编辑您的问题,提供一些传入文件的示例,以及您希望这些文件发生什么情况。