* test: Put gpg temp home directory in system temp directory,
not filesystem being tested.
* Avoid crashing tilde expansion on user who does not exist.
+ * When retrival from a chunked remote fails, display the error that
+ occurred when downloading the chunk, rather than the error that
+ occurred when trying to download the unchunked content, which is less
+ likely to actually be stored in the remote.
-- Joey Hess <id@joeyh.name> Mon, 11 Oct 2021 14:09:13 -0400
firstavail Nothing _ [] = giveup "unable to determine the chunks to use for this remote"
firstavail (Just e) _ [] = throwM e
firstavail pe currsize ([]:ls) = firstavail pe currsize ls
- firstavail _ currsize ((k:ks):ls)
+ firstavail pe currsize ((k:ks):ls)
| k == basek = getunchunked
- `catchNonAsync` (\e -> firstavail (Just e) currsize ls)
+ `catchNonAsync` (\e -> firstavail (Just (pickerr e)) currsize ls)
| otherwise = do
let offset = resumeOffset currsize k
let p = maybe basep
fromMaybe 0 $ fromKey keyChunkSize k
getrest p h iv sz sz ks
case v of
- Left e
- | null ls -> throwM e
- | otherwise -> firstavail (Just e) currsize ls
+ Left e -> firstavail (Just (pickerr e)) currsize ls
Right r -> return r
+ where
+ -- Prefer an earlier exception to a later one, because the
+ -- more probable location is tried first and less probable
+ -- ones later.
+ pickerr e = case pe of
+ Just pe' -> pe'
+ Nothing -> e
getrest _ _ iv _ _ [] = return (Right iv)
getrest p h iv sz bytesprocessed (k:ks) = do
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
Yes, for loads of stuff. It's awesome, thanks!
+
+> [[closed|done]], see my comment --[[Joey]]
--- /dev/null
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 5"""
+ date="2021-10-14T16:17:14Z"
+ content="""
+I have added a note to the S3 documentation about `DEEP_ARCHIVE` and the
+glacier special remote.
+
+I have made git-annex display the exception for the more likely chunked
+location, rather than the less likely unchunked location, when retrieving
+from both locations fails. Although it's still possible for there to be
+situations where the exception if displays is not for the location where
+the content actually is. Eg, if the chunk size of the remote has
+changed over time.
+
+I think that todo is basically talking about the same desire to make the S3
+remote support these glacier-style storage classes, in one way or another,
+and so I think this bug report can be closed as otherwise a duplicate of it.
+"""]]
When using Amazon S3,
if the remote will be used for backup or archival,
- and so its files are Infrequently Accessed, "STANDARD_IA" is a
+ and so its files are Infrequently Accessed, `STANDARD_IA` is a
good choice to save money (requires a git-annex built with aws-0.13.0).
If you have configured git-annex to preserve
- multiple [[copies]], also consider setting this to "ONEZONE_IA"
+ multiple [[copies]], also consider setting this to `ONEZONE_IA`
to save even more money.
+ Amazon S3's `DEEP_ARCHIVE` is similar to Amazon Glacier. For that,
+ use the [[glacier]] special remote, rather than this one.
+
When using Google Cloud Storage, to make a nearline bucket, set this to
- "NEARLINE". (Requires a git-annex built with aws-0.13.0)
+ `NEARLINE`. (Requires a git-annex built with aws-0.13.0)
Note that changing the storage class of an existing S3 remote will
affect new objects sent to the remote, but not objects already