【发布时间】:2018-10-05 18:07:13
【问题描述】:
我们有一个在服务器上运行的程序,它将 .xml 文件复制到我们的 S3 存储桶中。但它会根据日期创建文件夹。因此,创建了一年的文件夹,然后创建了月份的子文件夹,然后创建了当天的另一个子文件夹。例如:
S3://AppMyBucket/Documents/2018/Oct/05
所以它每天都按照当天创建一个文件夹,01、02、03 等,并将 .xml 文件放入这些文件夹中。我必须创建一个每 15 分钟运行一次的 PowerShell 脚本,以将进入从我们的 S3 存储桶创建的最新文件夹中的新文件复制到我本地计算机上的文件夹中,然后调用另一个程序来处理这些文件。
我的问题是如何将在我们的 S3 存储桶 (S3://AppBucket/Documents/2018/Oct/05...) 中创建的新文件夹创建的新文件复制到我的本地 Windows 机器 (D:\DocFolder\),然后调用程序 (AIMParser.exe) 来处理这些 .xml文件?
请原谅我,因为我是 PowerShell 的初学者。
【问题讨论】:
-
您想从今天的文件夹下载文件吗?还是您需要识别最新的文件夹? IE。当您的脚本运行时,最新的文件夹是否可能不是今天的文件夹?
-
另外,你这里有三个问题,所以你真的应该分开发布它们。 1) 识别最新文件夹,2) 从 S3 文件夹下载新文件。 3) 调用程序。
-
非常感谢 Reza 的回复!正在运行的应用程序将根据日期创建文件夹,所以是的,今天创建的文件夹将始终是最新的文件夹。所以我需要弄清楚如何扫描 S3 以查找放在最新文件夹中的文件。在这种情况下,该文件夹将是月份中的某一天。创建新月份后,它需要检测是否也创建了新的月份和日期文件夹。代码将需要扫描最近一个月和最近一天,并将应用程序放入其中的最新文件复制到我的本地计算机。
-
本地方面呢?您是否保留
D:\DocFolder中的目录结构,例如D:\DocFolder\2018\Oct\05?还是文件直接转到D:\DocFolder? - 你如何识别新文件?您是否将所有文件都保存在本地,因此您只想下载本地尚未存在的文件? -
代码需要识别到达我们的 S3 存储桶 (s3://AppBucket/Documents/2018/Oct/08) 的新 .xml 文件,因此需要考虑年/月/日s3 存储桶 s3://AppBucket/Documents/ 下的目录结构将根据今天的日期发生变化。 .xml 文件需要直接复制到我本地机器上的 D:\DocFolder。将 .xml 文件复制到我的本地计算机 D:\DocFolder 后,另一个应用程序将处理它们并将它们放在其他位置,因此一旦被此应用程序处理,D:\DocFolder 中就不会有任何 .xml 文件。
标签: amazon-web-services powershell amazon-s3