我希望创建一个makefile,其中目标和依赖项不是本地文件,而是存储在AWS/S3桶中。
考虑以下示例,它将简单地将"data_raw"文件复制到"obj1",然后再复制到"obj2"(在运行此操作之前,您需要将“bucket”编辑为您拥有的某个桶,并创建一些“data_raw”文件):
这个错误是:
我怀疑make完全不理解远程URI(“s3://xxx”)。
我能找到的所有示例/文档似乎都隐含地将目标和依赖项与本地文件相关联。广泛的谷歌搜索只产生了一些看似未完成的有关为s3创建ant任务的想法(http://code.google.com/p/awstasks/)。
这是在Python中运行几个复杂的MapReduce作业的背景下。
我宁愿使用GNU make,但肯定会考虑其他选择。
我总是可以创建一些轻量级的本地镜像来代替远程目标,但肯定有更好的方法吧?
提前感谢!
尼克
考虑以下示例,它将简单地将"data_raw"文件复制到"obj1",然后再复制到"obj2"(在运行此操作之前,您需要将“bucket”编辑为您拥有的某个桶,并创建一些“data_raw”文件):
# local, works fine
bucket = /tmp/test/
cp = cp
# remote, does not work
bucket = s3://bucket/test/
cp = s3cmd cp
all : $(bucket)obj2
$(bucket)obj2 : $(bucket)obj1
$(cp) $(bucket)obj1 $(bucket)obj2
$(bucket)obj1 :
$(cp) $(bucket)raw_data $(bucket)obj1
这个错误是:
makefile:9: *** target pattern contains no `%'. Stop.
这是为了:
all : $(bucket)obj2
我怀疑make完全不理解远程URI(“s3://xxx”)。
我能找到的所有示例/文档似乎都隐含地将目标和依赖项与本地文件相关联。广泛的谷歌搜索只产生了一些看似未完成的有关为s3创建ant任务的想法(http://code.google.com/p/awstasks/)。
这是在Python中运行几个复杂的MapReduce作业的背景下。
我宁愿使用GNU make,但肯定会考虑其他选择。
我总是可以创建一些轻量级的本地镜像来代替远程目标,但肯定有更好的方法吧?
提前感谢!
尼克
touch
指示真实文件已被修改,并使用synch
目标将它们与主要文件同步更新? - Beta