@@ -760,10 +760,13 @@ pub fn download_handler(req: &mut Request) -> IronResult<Response> {
760
760
ctry ! ( req, storage. set_public_access( & archive_path, true ) ) ;
761
761
}
762
762
763
- Ok ( super :: redirect ( ctry ! (
764
- req,
765
- Url :: parse( & format!( "{}/{}" , config. s3_static_root_path, archive_path) )
766
- ) ) )
763
+ Ok ( super :: cached_redirect (
764
+ ctry ! (
765
+ req,
766
+ Url :: parse( & format!( "{}/{}" , config. s3_static_root_path, archive_path) )
767
+ ) ,
768
+ CachePolicy :: ForeverInCdn ,
769
+ ) )
767
770
}
768
771
769
772
/// Serves shared resources used by rustdoc-generated documentation.
@@ -2342,10 +2345,9 @@ mod test {
2342
2345
wrapper ( |env| {
2343
2346
let web = env. frontend ( ) ;
2344
2347
2345
- assert_eq ! (
2346
- web. get( "/crate/dummy/0.1.0/download" ) . send( ) ?. status( ) ,
2347
- StatusCode :: NOT_FOUND
2348
- ) ;
2348
+ let response = web. get ( "/crate/dummy/0.1.0/download" ) . send ( ) ?;
2349
+ assert_cache_control ( & response, CachePolicy :: NoCaching , & env. config ( ) ) ;
2350
+ assert_eq ! ( response. status( ) , StatusCode :: NOT_FOUND ) ;
2349
2351
Ok ( ( ) )
2350
2352
} ) ;
2351
2353
}
@@ -2361,10 +2363,9 @@ mod test {
2361
2363
2362
2364
let web = env. frontend ( ) ;
2363
2365
2364
- assert_eq ! (
2365
- web. get( "/crate/dummy/0.1.0/download" ) . send( ) ?. status( ) ,
2366
- StatusCode :: NOT_FOUND
2367
- ) ;
2366
+ let response = web. get ( "/crate/dummy/0.1.0/download" ) . send ( ) ?;
2367
+ assert_cache_control ( & response, CachePolicy :: NoCaching , & env. config ( ) ) ;
2368
+ assert_eq ! ( response. status( ) , StatusCode :: NOT_FOUND ) ;
2368
2369
Ok ( ( ) )
2369
2370
} ) ;
2370
2371
}
@@ -2380,10 +2381,12 @@ mod test {
2380
2381
2381
2382
let web = env. frontend ( ) ;
2382
2383
2383
- assert_redirect_unchecked (
2384
+ assert_redirect_cached_unchecked (
2384
2385
"/crate/dummy/0.1/download" ,
2385
2386
"https://static.docs.rs/rustdoc/dummy/0.1.0.zip" ,
2387
+ CachePolicy :: ForeverInCdn ,
2386
2388
web,
2389
+ & env. config ( ) ,
2387
2390
) ?;
2388
2391
assert ! ( env. storage( ) . get_public_access( "rustdoc/dummy/0.1.0.zip" ) ?) ;
2389
2392
Ok ( ( ) )
@@ -2405,10 +2408,12 @@ mod test {
2405
2408
env. storage ( )
2406
2409
. set_public_access ( "rustdoc/dummy/0.1.0.zip" , false ) ?;
2407
2410
2408
- assert_redirect_unchecked (
2411
+ assert_redirect_cached_unchecked (
2409
2412
"/crate/dummy/0.1.0/download" ,
2410
2413
"https://static.docs.rs/rustdoc/dummy/0.1.0.zip" ,
2414
+ CachePolicy :: ForeverInCdn ,
2411
2415
web,
2416
+ & env. config ( ) ,
2412
2417
) ?;
2413
2418
assert ! ( env. storage( ) . get_public_access( "rustdoc/dummy/0.1.0.zip" ) ?) ;
2414
2419
Ok ( ( ) )
@@ -2432,10 +2437,12 @@ mod test {
2432
2437
2433
2438
let web = env. frontend ( ) ;
2434
2439
2435
- assert_redirect_unchecked (
2440
+ assert_redirect_cached_unchecked (
2436
2441
"/crate/dummy/latest/download" ,
2437
2442
"https://static.docs.rs/rustdoc/dummy/0.2.0.zip" ,
2443
+ CachePolicy :: ForeverInCdn ,
2438
2444
web,
2445
+ & env. config ( ) ,
2439
2446
) ?;
2440
2447
assert ! ( env. storage( ) . get_public_access( "rustdoc/dummy/0.2.0.zip" ) ?) ;
2441
2448
Ok ( ( ) )
0 commit comments