使用上述链接方法执行Amazon php sdk(http://docs.aws.amazon.com/aws-sdk-php/v3/guide/service/s3-transfer.html)同步操作。我已经成功编码并配置了它们,但是在每次调用该方法时,桶下文件的最后修改日期都会更新到最新时间,前提是文件未在本地修改为先前的同步调用。
我想知道它是完全同步操作还是覆盖从本地目录发送的任何操作?
为什么这很重要我们计划在服务器和S3存储桶之间同步文件。使用S3存储桶作为备份存储,如果发生任何中断,我们可以以相反的方式同步(S3存储桶 - >服务器),以便在我们的服务器中提供缺少的数据。
注意:
答案 0 :(得分:2)
不幸的是我相信答案是否定的,我也看到在使用Transfer
课程时完整上传每个文件。
它过去工作,来自v2
API docs:
客户端的
uploadDirectory()
方法将比较内容 仅适用于Amazon S3存储桶中内容的本地目录 传输已更改的文件。
完美,这就是我们想要的!
但是,在v3
中,他们保留了S3Client::uploadDirectory()
以获得API兼容性,但我认为Transfer::promise()
just a wrapper,我们知道只是上传而没有任何同步。保持API兼容性但改变这样的行为对我来说似乎是一个非常糟糕的主意。
我最终不得不为我的项目添加支持,以便使用AWS CLI工具进行实际上传,这确实支持完美同步。远非理想。
如果有办法使用Transfer
课程来轻松同步而不是完全上传,我希望有人可以证明我错了。