问题描述
在触发 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 响应的一部分,但我没有看到它。
任何帮助将不胜感激。谢谢!
解决方法
我找到了一个解决方案,但它涉及一个额外的请求。如果有人知道无需发出其他请求即可访问元数据的方法,那就更好了。
$headObject = $this->client->headObject([
'Bucket' => $this->bucket,'Key' => $key,]);