0

我想在触发completeMultipartUpload方法后访问通过 S3 分段上传上传的对象的自定义元数据。


我使用一些添加的自定义元数据启动分段 S3 上传,如下所示:

$response = $this->client->createMultipartUpload([
    'Bucket'        => $this->bucket,
    'Key'           => $key,
    'ContentType'   => $type,
    'Expires'       => 60,
    'Metadata'   => [
        'file-guid' => $fileGuid,
    ],
]);

当我完成分段上传时,我想访问文件 guid元数据并将其传递给我的响应。

$result = $this->client->completeMultipartUpload([
    'Bucket'          => $this->bucket,
    'Key'             => $key,
    'UploadId'        => $uploadId,
    'MultipartUpload' => [
        'Parts' => $parts,
    ],
]);

$fileGuid = $result['?'] // Couldn't find the metadata in the result.

return response()->json(['file-guid' => $fileGuid]);

我在上传 S3 对象后检查了它,它显示了自定义元数据,但我看不到如何访问它。我认为这将是completeMultipartUpload响应的一部分,但我没有看到它。

在此处输入图像描述

任何帮助,将不胜感激。谢谢!

4

1 回答 1

0

我找到了一个解决方案,但它涉及一个额外的请求。如果有人知道在不发出其他请求的情况下访问元数据的方法,那就更好了。

$headObject = $this->client->headObject([
    'Bucket' => $this->bucket,
    'Key' => $key,
]);
于 2021-06-23T16:01:32.437 回答