| 3657 | // Top-level utility functions |
| 3658 | |
| 3659 | Result<std::string> ResolveS3BucketRegion(const std::string& bucket) { |
| 3660 | RETURN_NOT_OK(CheckS3Initialized()); |
| 3661 | |
| 3662 | if (bucket.empty() || bucket.find_first_of(kSep) != bucket.npos || |
| 3663 | internal::IsLikelyUri(bucket)) { |
| 3664 | return Status::Invalid("Not a valid bucket name: '", bucket, "'"); |
| 3665 | } |
| 3666 | |
| 3667 | ARROW_ASSIGN_OR_RAISE(auto resolver, RegionResolver::DefaultInstance()); |
| 3668 | return resolver->ResolveRegion(bucket); |
| 3669 | } |
| 3670 | |
| 3671 | auto kS3FileSystemModule = ARROW_REGISTER_FILESYSTEM( |
| 3672 | "s3", |