我正在尝试创建一个能够在S3中存储用户上传文件的Web服务。问题是我们希望文件存储在“日期目录”中。
例如,如果用户在a.txt
上传12/1/2017 at 9:15am
,则该文件在S3中应如下所示:
https://s3-eu-west-1.amazonaws.com/test-bucket/uploaded/2017/12/1/9/a.txt
S3是否有任何API可以帮助我们实现这一目标,还是我们需要手工制作这个解决方案?
S3中没有这样的API。将Amazon S3视为存储服务,而不是应用程序或数据库。
应用程序负责以所需的命名格式存储数据 - 就像在磁盘上存储数据一样。
顺便说一句,您的命名格式可以带来一些改进:
01
表示1月而不是1
),以便它们正确排序。/2017/12/01/09/a.txt
命名格式是有意义的,因为您可以查看2017目录(而不是S3中确实存在的目录)。如果没有,那么只需将其存储为/2017-12-01-09-a.txt
。2017-12-01
的格式清楚地表明它是2017年12月1日。AWS S3不提供此类逻辑。但是应该通过相当容易的方式使用应用程序的时间信息来创建这样的s3对象密钥(“路径”)。
祝好运!