download-from-binary-cache.pl: Treat a 403 error as a 404

Amazon S3 returns HTTP status code 403 if a file doesn't exist and the
user has no permission to list the contents of the bucket.  So treat
it as 404 (meaning it's cached in the NARExistence table).
This commit is contained in:
Eelco Dolstra 2013-06-04 15:20:37 +02:00
parent bc2e43f3c8
commit ff08306746

View file

@ -288,7 +288,7 @@ sub processNARInfo {
my ($storePath, $cache, $request) = @_; my ($storePath, $cache, $request) = @_;
if ($request->{result} != 0) { if ($request->{result} != 0) {
if ($request->{result} != 37 && $request->{httpStatus} != 404) { if ($request->{result} != 37 && $request->{httpStatus} != 404 && $request->{httpStatus} != 403) {
print STDERR "could not download $request->{url} (" . print STDERR "could not download $request->{url} (" .
($request->{result} != 0 ? "Curl error $request->{result}" : "HTTP status $request->{httpStatus}") . ")\n"; ($request->{result} != 0 ? "Curl error $request->{result}" : "HTTP status $request->{httpStatus}") . ")\n";
} else { } else {
@ -467,7 +467,7 @@ sub printSubstitutablePaths {
foreach my $request (values %requests) { foreach my $request (values %requests) {
if ($request->{result} != 0) { if ($request->{result} != 0) {
if ($request->{result} != 37 && $request->{httpStatus} != 404) { if ($request->{result} != 37 && $request->{httpStatus} != 404 && $request->{httpStatus} != 403) {
print STDERR "could not check $request->{url} (" . print STDERR "could not check $request->{url} (" .
($request->{result} != 0 ? "Curl error $request->{result}" : "HTTP status $request->{httpStatus}") . ")\n"; ($request->{result} != 0 ? "Curl error $request->{result}" : "HTTP status $request->{httpStatus}") . ")\n";
} else { } else {