更改R中文件的上次更新日期
我编写了一个小函数,仅当文件的本地版本大小不同时,才从S3数据存储库下载文件,以节省带宽和时间 如果且仅当上次更新日期时间不同时,我想改进它以供下载。我可以使用更改R中文件的上次更新日期,r,httr,R,Httr,我编写了一个小函数,仅当文件的本地版本大小不同时,才从S3数据存储库下载文件,以节省带宽和时间 如果且仅当上次更新日期时间不同时,我想改进它以供下载。我可以使用HEAD(来自httr软件包)进行检查,以获取远程文件的日期时间,并获取本地文件的file.info 但是(特别是)当我下载文件的新副本时,它的Sysdate将作为创建/上次更新时间。我需要一种方法来更新一个新的本地副本的日期时间与一个从服务器,包括潜在的问题,由于不同的时区 file.info似乎无法写入文件属性 你知道我该怎么做吗?我
HEAD
(来自httr软件包)进行检查,以获取远程文件的日期时间,并获取本地文件的file.info
但是(特别是)当我下载文件的新副本时,它的Sysdate将作为创建/上次更新时间。我需要一种方法来更新一个新的本地副本的日期时间与一个从服务器,包括潜在的问题,由于不同的时区
file.info似乎无法写入文件属性
你知道我该怎么做吗?我不认为你能做到,即使你能做到,这种方法对我来说似乎有点不可靠(例如你提到了时区)。相反,我建议您依靠文件的
md5sum
(其内容的唯一表示形式)来判断它何时发生了更改:
library(tools)
if (md5sum(remote) != md5sum(local)) file.copy(remote, local)
如果您的复制标准是“远程文件的最后修改日期比本地文件的更新”,那么将时区问题分开来看,您的问题不会自行解决吗?而不是普通的
=代码>比较。这是个好主意,但是没有多少服务器(Amazon肯定没有)在响应头中提供md5字段。我最关心的是避免不必要的下载…好的。那么,将服务器提供给您的信息存储到一个R对象或单独的文件中,以供以后比较如何?是的,为我存储在repo上的每个文件烘焙一个.md5文件无疑是最好的解决方法!Amazon通常提供一个eTag头,其中包含文件的md5散列。