]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
rgw/ops-log: explicitly specify object name in the log entry
authorOguzhan Ozmen <oozmen@bloomberg.net>
Fri, 15 Sep 2023 17:25:52 +0000 (13:25 -0400)
committerOguzhan Ozmen <oozmen@bloomberg.net>
Mon, 18 Sep 2023 21:25:37 +0000 (17:25 -0400)
commitf7b72d43d87325714de7762e66df8530852129fc
tree095b0e0bf58741ff90505d2a4d3e4764a01b260a
parent38f11f28b05bfd80aaf2644cc1660ef8b51dd272
rgw/ops-log: explicitly specify object name in the log entry

Pseudo-directories can be used when naming an object (key): e.g.,
"my/weird/object.txt". This would lead to cases where the name of the object
cannot be derived deterministically. For example, if an object name uses
pseudo-directories and starts with "<bucket_name>/" and virtual-host style is
used when accessing object, we cannot figure out the name of the object. Note
that in DNS (virtual host) style bucket naming, since bucket name is specified as
a part of the host name, URI doesn't contain any reference to the bucket.

boto_client = boto3.client(..., config=Config(s3={'addressing_style': 'virtual'}))

boto_client.put_object(
        Body=b"this is the data",
        Key="my-bucket/my-object",
        Bucket="my-bucket"
)

The corresponding log entry is

{   ...,
    "bucket":"my-bucket", ...,
    "uri":"PUT /my-bucket/my-object HTTP/1.1",
    ...
}

We can falsely conclude that the name of the object is "my-object".

By having the name of the object listed in the log-entry, we address
this ambiguity.

Signed-off-by: Oguzhan Ozmen <oozmen@bloomberg.net>
src/rgw/rgw_log.cc