Php Amazon S3在上传时获取对象的版本id

Php Amazon S3在上传时获取对象的版本id,php,api,amazon-s3,amazon-web-services,Php,Api,Amazon S3,Amazon Web Services,我在bucket中启用了版本控制,以防止覆盖同名文件。在php应用程序中创建对象时,我需要将版本id存储在数据库中,以便在删除对象时使用 我当前正在从上传返回的标题响应中获取版本id //upload the file $response = $s3->create_object($bucket, $filename, array( 'fileUpload' => $filepath, 'acl' => AmazonS3::ACL_PUBL

我在bucket中启用了版本控制,以防止覆盖同名文件。在php应用程序中创建对象时,我需要将版本id存储在数据库中,以便在删除对象时使用

我当前正在从上传返回的标题响应中获取版本id

//upload the file           
$response = $s3->create_object($bucket, $filename, array(
    'fileUpload' => $filepath,
    'acl' => AmazonS3::ACL_PUBLIC,
    'contentType' => $this->upload->file_type,
    'storage'     => AmazonS3::STORAGE_REDUCED,         
));

//get version id 
$version_id' => $response->header['x-amz-version-id'];

这是正确的方法吗?删除对象时需要使用版本ID,上传时需要将对应对象的版本ID保存在db中。我非常感谢你的建议

为什么要在数据库中保留版本id,可以从给定前缀和对象的版本列表中再次获取该版本id。这将返回给定对象的所有版本。哪个标记,哪个是最新的,哪个是删除的,等等


我来自Bucket Explorer的开发团队,您可以使用它查看列表。

是的,这是在上传时获取版本ID的最有效方法

当S3已经为您这样做时,我仍然不清楚您为什么要在数据库中存储对象版本的版本ID。通过调用并传递前缀值来专门针对bucket中的单个对象,S3将返回该对象的所有对应版本id的列表


我希望这有帮助!:

您好,谢谢您的回复。我只是从S3开始。我不知道版本ID的全部潜力。我在数据库中保存我上传的所有对象的信息。我在删除对象时使用数据库信息。当我删除一个对象时,我的数据库中已经有了版本id,所以我不会发出获取它的新请求。我不确定如何在php中获得相应的版本id,如果说更多的对象具有相同的名称,那么出于这个原因,我必须在上传时获得版本id。