【问题标题】:Google Storage PHP client: Can't create object by POSTing to signed URLGoogle Storage PHP 客户端:无法通过发布到签名 URL 来创建对象
【发布时间】:2018-12-22 14:11:35
【问题描述】:

我们在后端使用Google\Cloud\Storage\StorageObject 的signedUploadUrl 方法为我们基于JS 的客户端生成上传URL,以便能够将数据上传到这些URL 中而无需身份验证。

然后客户端会检索此 URL,然后通过使用 POST 请求创建存储对象来 start a resumable upload 以获取 upload_id,随后的 PUT 请求将使用此 upload_id 向其添加数据作为身份验证因素。

我们面临的问题是这个签名上传 URL 的行为不符合预期:我们应该向它 POST 元数据(文件名、内容类型)以获得一个 upload_id,但是这个请求失败并显示“SignatureDoesNotMatch ”。

由于我们使用的是官方 PHP 客户端库,因此我们不知道会发生什么导致它无法正常工作。

【问题讨论】:

    标签: php google-cloud-storage


    【解决方案1】:

    您是否尝试将 content-type 标头与您随后的 PUT 请求一起发送? 由于生成的签名上传 URL 是与 content-type 标头一起创建的,因此后续 PUT 请求必须发送相同的标头。

    看看这里:google-cloud-php

    options->contentType:如果你提供这个值,客户端必须提供这个HTTP头设置为相同的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-20
      • 2014-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-06
      相关资源
      最近更新 更多