完成分段上传后访问自定义 S3 元数据

问题描述

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


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

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

当我完成分段上传时,我想访问 file-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 响应的一部分,但我没有看到它。

enter image description here

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

解决方法

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

$headObject = $this->client->headObject([
    'Bucket' => $this->bucket,'Key' => $key,]);