IBM Cloud Object 存储 - 它是否支持 object 版本控制,以及如何获取 UUID?

IBM Cloud Object Storage - does it support object versioning, and how to get the UUID?

1) documentation 状态:

A universally unique identifier (UUID): This ID is assigned to every object in an OBS system. This UUID allows the object storage system to differentiate objects from one another and is used to find the data without needing to know the exact physical drive, array, or site where the data is.

但是,我无法在 API 中找到有关如何通过其 UUID 检索 object 或如何检索 object 的 UUID 的信息。我可以这样做吗?

2) COS 是否像 aws 一样支持存储的 objects 的自动版本控制?例如,如果我将数据存储在 version-enabled 存储桶中,我将收到带有分配的版本 ID 的 header x-amz-version-id(请参阅 here)。 COS 是否支持版本控制,如果支持,如何获取 object 的版本?

对象的UUID其实就是{bucket-name}/{object-key}的组合。因为每个存储桶名称必须是全局唯一的,所以这允许对象键定义对象的唯一标识符。感谢您提出这个问题,我应该重写文档的那部分内容以不使用 UUID,因为这意味着还有一个额外的基础标识符。

目前,不,COS 不支持 public 云中对象的 AWS S3 样式版本控制(尽管这在私有云实施中是可能的)。这是今年晚些时候的路线图。

关于版本,我不知道,但如果你想拥有 AWS 提供的 UUID,那么,你也可以谈谈 Etag。对于给定的对象,Etag 是这样的:

52816d090462f946a7a6273ea3d3896c

为了得到这个 Etag,BOTO3 太棒了: 使用此调用获取它:

s3ressource = client(
    service_name='s3', 
    endpoint_url= "endpoint_url",
    aws_access_key_id= "aws_access_key_id",
    aws_secret_access_key="aws_secret_access_key",
    use_ssl=True,
    )


OBJE = s3ressource.head_object(Bucket = TheNameOfYourBucket, Key = theNameOfYourObject) 
ETAGOBJE=OBJE['ETag']

顺便说一句,现在支持对象版本控制。

https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-versioning