in src/aws/builder.rs [1442:1508]
fn s3_test_urls() {
let mut builder = AmazonS3Builder::new();
builder.parse_url("s3://bucket/path").unwrap();
assert_eq!(builder.bucket_name, Some("bucket".to_string()));
let mut builder = AmazonS3Builder::new();
builder
.parse_url("s3://buckets.can.have.dots/path")
.unwrap();
assert_eq!(
builder.bucket_name,
Some("buckets.can.have.dots".to_string())
);
let mut builder = AmazonS3Builder::new();
builder
.parse_url("https://s3.region.amazonaws.com")
.unwrap();
assert_eq!(builder.region, Some("region".to_string()));
let mut builder = AmazonS3Builder::new();
builder
.parse_url("https://s3.region.amazonaws.com/bucket")
.unwrap();
assert_eq!(builder.region, Some("region".to_string()));
assert_eq!(builder.bucket_name, Some("bucket".to_string()));
let mut builder = AmazonS3Builder::new();
builder
.parse_url("https://s3.region.amazonaws.com/bucket.with.dot/path")
.unwrap();
assert_eq!(builder.region, Some("region".to_string()));
assert_eq!(builder.bucket_name, Some("bucket.with.dot".to_string()));
let mut builder = AmazonS3Builder::new();
builder
.parse_url("https://bucket.s3.region.amazonaws.com")
.unwrap();
assert_eq!(builder.bucket_name, Some("bucket".to_string()));
assert_eq!(builder.region, Some("region".to_string()));
assert!(builder.virtual_hosted_style_request.get().unwrap());
let mut builder = AmazonS3Builder::new();
builder
.parse_url("https://account123.r2.cloudflarestorage.com/bucket-123")
.unwrap();
assert_eq!(builder.bucket_name, Some("bucket-123".to_string()));
assert_eq!(builder.region, Some("auto".to_string()));
assert_eq!(
builder.endpoint,
Some("https://account123.r2.cloudflarestorage.com".to_string())
);
let err_cases = [
"mailto://bucket/path",
"https://s3.bucket.mydomain.com",
"https://s3.bucket.foo.amazonaws.com",
"https://bucket.mydomain.region.amazonaws.com",
"https://bucket.s3.region.bar.amazonaws.com",
"https://bucket.foo.s3.amazonaws.com",
];
let mut builder = AmazonS3Builder::new();
for case in err_cases {
builder.parse_url(case).unwrap_err();
}
}