【问题标题】:Migrating from local files to AWS S3 in PHP使用 PHP 从本地文件迁移到 AWS S3
【发布时间】:2017-03-14 01:45:48
【问题描述】:

我正在将一个在本地存储图片的 PHP Web 应用程序迁移到 AWS S3,它无法进入维护窗口。
S3 图片将公开可见。

这是我正在遵循的步骤:

  1. 实现 S3 api,使新图片存储在 S3 中,本地不再保存新文件。
  2. 重构图片列表,使其可以显示本地和 s3 图片,后者将使用公共 URL 显示。
  3. 添加一个数据库标志以确定该图片是存储在本地还是存储在 S3 中。
  4. 使用 AWS CLI 将本地文件迁移到 S3。总共有近十万张图片,我打算一次做一个客户以避免超时。
  5. 问题:迁移后,我可以在 S3 获取这些对象,但我的数据库中没有存储它们的公共 URL。
  6. 解决方案: 通过每个客户端运行一个脚本,获取那些没有公共 URL 的数据库记录,在 S3 获取这些 URL,然后使用 URL 更新它们的数据库记录并更改它的标志以指示现在它存储在 s3 中。

有没有更好/更顺畅的方法?

【问题讨论】:

    标签: php amazon-web-services amazon-s3


    【解决方案1】:

    您的数据库是否可公开访问,或者如果它是 RDS 实例,您可以创建 Lambda 函数,以便在上传对象后将记录插入/更新到数据库。

    类似于下面tutorial中的解释

    上传s3对象时添加user-defined metadata属性来指定数据库主键(可以加密)。

    一旦对象上传到 s3 lambda 函数将被触发,payload 包含连接 s3 对象 url 所需的所有信息

    【讨论】:

    • 这会给我原始对象的公共 URL 吗?
    • 对不起,我详细阐述了我的答案以便更好地解释它
    【解决方案2】:

    S3 对象的公共 URL 没有改变,所以我对其进行了硬编码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-04
      • 2020-11-02
      • 2023-03-13
      • 1970-01-01
      • 2014-01-21
      • 1970-01-01
      • 1970-01-01
      • 2021-02-28
      相关资源
      最近更新 更多