avoid redundant set of a S3 verison ID that is already recorded

I think this could cause unnecessary changes to the git-annex branch,
and retrieveExportWithContentIdentifier is now also used for getting
content from importtree=yes remotes, so it would happen more frequently
so let's avoid.
This commit is contained in:
Joey Hess 2020-12-17 16:49:17 -04:00
parent e5ef8aea9a
commit e9db382308
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38

View file

@ -656,7 +656,10 @@ retrieveExportWithContentIdentifierS3 hv r rs info loc cid dest mkkey p = withS3
S3.getObject (bucket info) o
k <- mkkey
case extractContentIdentifier cid o of
Right vid -> setS3VersionID info rs k vid
Right vid -> do
vids <- getS3VersionID rs k
unless (vid `elem` map Just vids) $
setS3VersionID info rs k vid
Left _ -> noop
return k
Nothing -> giveup $ needS3Creds (uuid r)
@ -1132,7 +1135,7 @@ getPublicUrlMaker info = case publicurl info of
-- version id involves a request for an object, so this keeps track of what
-- the object is.
data S3VersionID = S3VersionID S3.Object T.Text
deriving (Show)
deriving (Show, Eq)
-- smart constructor
mkS3VersionID :: S3.Object -> Maybe T.Text -> Maybe S3VersionID