Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.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 web services AmazonS3对您创建的子文件夹数量有限制吗?_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon web services AmazonS3对您创建的子文件夹数量有限制吗?

Amazon web services AmazonS3对您创建的子文件夹数量有限制吗?,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我正在考虑使用AmazonS3来实现我自己的备份解决方案。这个想法是让一个脚本接受一个目录,并递归地将该目录下的所有文件上传到s3中。然而,由于以下原因,我不确定它是否有效 s3显然没有文件夹。 s3对对象名称的大小施加限制1024个字符。 我认为这意味着,如果对象标识为/foo/bar/baz.txt,那么该文件路径的/foo/bar/部分实际上是对象名称的一部分,并计入对象名称的字符限制。如果这是真的,那么当上传带有长文件路径的深度嵌套文件时,我会发现这会成为一个问题,尽管1024个字符看起

我正在考虑使用AmazonS3来实现我自己的备份解决方案。这个想法是让一个脚本接受一个目录,并递归地将该目录下的所有文件上传到s3中。然而,由于以下原因,我不确定它是否有效

s3显然没有文件夹。 s3对对象名称的大小施加限制1024个字符。 我认为这意味着,如果对象标识为/foo/bar/baz.txt,那么该文件路径的/foo/bar/部分实际上是对象名称的一部分,并计入对象名称的字符限制。如果这是真的,那么当上传带有长文件路径的深度嵌套文件时,我会发现这会成为一个问题,尽管1024个字符看起来确实相当慷慨

我的理解正确吗?

是的,这是准确的

S3是一个键/值存储,而不是一个文件系统,尽管备份肯定是它的作者希望它用于的东西,文档选择的示例键主要是文件路径就证明了这一点!。如果您的计算机的目录结构和文件名太长,嵌套太深,以至于它们的整个路径超过1000个字符,我强烈建议您重新组织硬盘

如果您无法做到这一点,并且有很多长路径,那么您可能希望尝试其他方法,而不是尝试在这两件事情之间进行一对一的映射。例如,可以使用某个GUID键存储文件内容的数据块。有一个单独的键/值存储,将guid映射到文件路径。尽管这对反向查找没有帮助。基本上,如果您试图使用算法和数据结构在代码中高效地构建此结构,那么您将执行相同的操作。因为,真的,那也是你在这里做的

把备份放在一边,更一般地说,如果您只是将磁盘上的子目录用作一种元数据,那么S3中还可以使用其他元数据属性。但是对象键在整个数据集中仍然必须是唯一的

你可以阅读。

是的,这是准确的

S3是一个键/值存储,而不是一个文件系统,尽管备份肯定是它的作者希望它用于的东西,文档选择的示例键主要是文件路径就证明了这一点!。如果您的计算机的目录结构和文件名太长,嵌套太深,以至于它们的整个路径超过1000个字符,我强烈建议您重新组织硬盘

如果您无法做到这一点,并且有很多长路径,那么您可能希望尝试其他方法,而不是尝试在这两件事情之间进行一对一的映射。例如,可以使用某个GUID键存储文件内容的数据块。有一个单独的键/值存储,将guid映射到文件路径。尽管这对反向查找没有帮助。基本上,如果您试图使用算法和数据结构在代码中高效地构建此结构,那么您将执行相同的操作。因为,真的,那也是你在这里做的

把备份放在一边,更一般地说,如果您只是将磁盘上的子目录用作一种元数据,那么S3中还可以使用其他元数据属性。但是对象键在整个数据集中仍然必须是唯一的


您可以阅读。

虽然我已经回答了这个问题,但我不应该真的这么做,因为这与编程无关,因此离题了。理想情况下,它会被迁移到超级用户或类似的地方……虽然我已经回答了这个问题,但我不应该真的这么做,因为这与编程无关,因此也离题了。理想情况下,它会被迁移到超级用户或其他类似的地方……更进一步,如果备份软件打算保留一个文件的多个版本,例如,如果一个文件被更改,它应该保留以前的版本吗?,这打破了源文件名与目标文件名的1:1匹配,并为使用带有GUID的数据日志增加了更多的理由。这是一个很好的观点,尽管S3确实为每个对象都有一个版本ID。更进一步,如果备份软件打算保留一个文件的多个版本(例如,如果某个文件已更改),它是否应该保留以前的版本?,这打破了源文件名与目标文件名的1:1匹配,为使用带有GUID的数据日志增加了更多的理由。这是一个很好的观点,尽管S3确实为每个对象都有一个版本ID。