Skip to content

Commit 195b80c

Browse files
authored
Merge pull request #421 from Turbo87/db-dumps
crates-io: Add support for `db-dump.zip` files
2 parents 12be3fc + a0e6a04 commit 195b80c

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

terragrunt/modules/crates-io/compute-static/src/main.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,9 @@ fn handle_request(config: &Config, mut request: Request) -> Result<Response, Err
116116

117117
// Database dump is too big to cache on Fastly
118118
if request.get_url_str().ends_with("db-dump.tar.gz") {
119-
redirect_db_dump_to_cloudfront(config)
119+
redirect_to_cloudfront(config, "db-dump.tar.gz")
120+
} else if request.get_url_str().ends_with("db-dump.zip") {
121+
redirect_to_cloudfront(config, "db-dump.zip")
120122
} else {
121123
send_request_to_s3(config, &request)
122124
}
@@ -192,8 +194,8 @@ fn rewrite_download_urls(request: &mut Request) {
192194
///
193195
/// As of early 2023, certain files are too large to be served through Fastly. One of those is the
194196
/// database dump, which gets redirected to CloudFront.
195-
fn redirect_db_dump_to_cloudfront(config: &Config) -> Result<Response, Error> {
196-
let url = format!("https://{}/db-dump.tar.gz", config.cloudfront_url);
197+
fn redirect_to_cloudfront(config: &Config, path: &str) -> Result<Response, Error> {
198+
let url = format!("https://{}/{path}", config.cloudfront_url);
197199
Ok(Response::temporary_redirect(url))
198200
}
199201

terragrunt/modules/crates-io/s3-static.tf

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,21 @@ resource "aws_s3_bucket" "static" {
1313
max_age_seconds = 3000
1414
}
1515

16-
// Keep only the live db-dump.tar.gz and the previous day's version, removing
16+
// Keep only the live db-dumps and the previous day's versions, removing
1717
// all the other ones. This is needed because we don't want this file to be
1818
// versioned, while all the other ones in the bucket should be versioned.
19-
lifecycle_rule {
20-
id = "purge-db-dump"
21-
enabled = true
22-
prefix = "db-dump.tar.gz"
19+
dynamic "lifecycle_rule" {
20+
for_each = toset(["db-dump.tar.gz", "db-dump.zip"])
21+
22+
content {
23+
id = "purge-${replace(lifecycle_rule.key, ".", "-")}"
24+
enabled = true
25+
prefix = lifecycle_rule.key
2326

24-
abort_incomplete_multipart_upload_days = 1
25-
noncurrent_version_expiration {
26-
days = 1
27+
abort_incomplete_multipart_upload_days = 1
28+
noncurrent_version_expiration {
29+
days = 1
30+
}
2731
}
2832
}
2933

0 commit comments

Comments
 (0)