Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.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
将最新文件从S3复制到Azure Blob(使用Azure Factory V2)_Azure_Azure Storage_Azure Data Factory 2_Azure Triggers - Fatal编程技术网

将最新文件从S3复制到Azure Blob(使用Azure Factory V2)

将最新文件从S3复制到Azure Blob(使用Azure Factory V2),azure,azure-storage,azure-data-factory-2,azure-triggers,Azure,Azure Storage,Azure Data Factory 2,Azure Triggers,我还是Azure Data Factory的新手,正在尝试将每天转储在我的S3文件夹/存储桶中的文件移动到Azure blob。我已经在Data Factory中创建了数据集(用于源和接收器)和链接服务 但是由于我的S3存储桶每天都会收到新文件,我想知道如何每天移动掉在S3中的最新文件(比如东部时间早上5点)。我在网上浏览了大部分答案,比如,和。但是它们都没有解释如何找出S3中哪一个是最新的文件(可能是基于上次修改的日期/时间,或者通过匹配类似“my_report_YYYYMMDD.csv.gz

我还是Azure Data Factory的新手,正在尝试将每天转储在我的S3文件夹/存储桶中的文件移动到Azure blob。我已经在Data Factory中创建了数据集(用于源和接收器)和链接服务

但是由于我的S3存储桶每天都会收到新文件,我想知道如何每天移动掉在S3中的最新文件(比如东部时间早上5点)。我在网上浏览了大部分答案,比如,和。但是它们都没有解释如何找出S3中哪一个是最新的文件(可能是基于上次修改的日期/时间,或者通过匹配类似“my_report_YYYYMMDD.csv.gz”的文件名模式,)并且只将该文件复制到目标blob

提前感谢您的帮助/回答

我的想法如下:

1.首先,当然,在schedule触发器中配置您的管道执行。请参阅此

2.使用,它支持AmazonS3连接器,以获取S3数据集中的文件

获取上次修改的元数据和文件名等

3.将这些包含上次修改时间和文件名的元数据数组放入或中。在RESTAPI或函数方法中,您可以执行排序逻辑业务以获取最新修改的文件

4.从Web活动或Azure功能活动获取文件名,然后将其复制到Azure Blob存储中

另一个想法是使用。您可以使用.net代码实现您的需求。

(旁注:感谢上面Jay Gong提出的解决方案)

我找到了答案。这比我想象的要简单。有一个
动态内容/表达式
,我们可以添加到S3数据集的“Filter by last modified”字段中。请参见下面的屏幕截图,其中我展示了如何使用dynamic expression选择不超过5小时的文件。更多关于这些表达的信息可以阅读

希望这是有帮助的