【问题标题】:Is Sync in Amazon S3 PHP SDK/API really a sync operation?Amazon S3 PHP SDK/API 中的同步真的是同步操作吗?
【发布时间】:2017-04-04 06:22:29
【问题描述】:

Amazon php sdk (http://docs.aws.amazon.com/aws-sdk-php/v3/guide/service/s3-transfer.html) 同步操作使用上述链接方法执行。我已经成功地对它们进行了编码和配置,但是在每次调用该方法时,存储桶下文件的最后修改日期都会更新为最新时间,因为文件没有在本地修改为上一次同步调用。

我想知道它是完全同步操作还是只是覆盖从本地目录发送的任何内容的操作?

这很重要,因为我们计划在服务器和 S3 存储桶之间同步大量文件。使用 S3 存储桶作为备份存储,如果发生任何中断,我们可以同步(S3 存储桶 -> 服务器)以相反的方式使丢失的数据在我们的服务器中可用。

注意事项:

  1. 我也试过这个来自here
  2. 目前我使用的是 AWS php sdk 版本 3

【问题讨论】:

    标签: php amazon-web-services amazon-s3 synchronization aws-sdk


    【解决方案1】:

    不幸的是,我相信答案是否定的,我还看到使用 Transfer 类时每个文件都完整上传。

    它曾经工作过,来自v2 API docs

    客户端的uploadDirectory()方法会比较 Amazon S3 存储桶中内容的本地目录,并且仅 传输已更改的文件。

    完美,这就是我们想要的!

    但是,我猜他们在v3 中保留了S3Client::uploadDirectory() 以实现API 兼容性,但just a wrapper 用于Transfer::promise(),据我们所知,它只是在没有任何同步的情况下上传。保持 API 兼容性但像这样改变行为对我来说似乎是一个非常糟糕的主意

    我最终不得不为我的项目添加支持,以使用 AWS CLI 工具进行实际上传,该工具完全支持同步。远非理想。

    如果有办法使用Transfer 类来轻松同步而不是完整上传,我希望有人能证明我错了。

    【讨论】:

    • 感谢您的回答,我想知道为什么我在 v3 中找不到这个。
    • 所以你是用php shell或者exec,直接用aws cli?
    • 是的,我最终使用了官方 AWS CLI 工具 writing a PHP config reading wrapper
    猜你喜欢
    • 2023-04-11
    • 2017-01-26
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 2021-09-09
    • 2018-02-16
    相关资源
    最近更新 更多