return 0;
}
- auto& bucket = *_bucket;
+ auto bucket = *_bucket;
+
+ if (bucket.bucket_id.empty()) {
+ RGWBucketEntryPoint ep_info;
+ int ret = svc.bucket_sobj->read_bucket_entrypoint_info(ctx.ep,
+ RGWSI_Bucket::get_entrypoint_meta_key(bucket),
+ &ep_info,
+ nullptr, /* objv_tracker */
+ nullptr, /* mtime */
+ nullptr, /* attrs */
+ y,
+ dpp,
+ nullptr, /* cache_info */
+ boost::none /* refresh_version */);
+ if (ret < 0) {
+ if (ret != -ENOENT) {
+ ldout(cct, 0) << "ERROR: svc.bucket->read_bucket_info(bucket=" << bucket << ") returned r=" << ret << dendl;
+ }
+ return ret;
+ }
+
+ bucket = ep_info.bucket;
+ }
string zone_key;
string bucket_key;