update
This commit is contained in:
parent
024120065e
commit
2514c26ed8
1 changed files with 6 additions and 4 deletions
|
@ -198,21 +198,23 @@ ExportActions api.
|
||||||
|
|
||||||
getContentIdentifier :: ExportLocation -> Annex (Maybe ContentIdentifier)
|
getContentIdentifier :: ExportLocation -> Annex (Maybe ContentIdentifier)
|
||||||
|
|
||||||
retrieveExportWithContentIdentifier :: ExportLocation -> ContentIdentifier -> FilePath -> MeterUpdate -> Annex Bool
|
retrieveExportWithContentIdentifier :: ExportLocation -> ContentIdentifier -> (FilePath -> Annex Key) -> MeterUpdate -> Annex (Maybe Key)
|
||||||
|
|
||||||
storeExportWithContentIdentifier :: FilePath -> Key -> ExportLocation -> MeterUpdate -> Annex (Maybe ContentIdentifier)
|
storeExportWithContentIdentifier :: FilePath -> Key -> ExportLocation -> MeterUpdate -> Annex (Maybe ContentIdentifier)
|
||||||
|
|
||||||
retrieveExportWithContentIdentifier is used when downloading a new file from
|
retrieveExportWithContentIdentifier is used when downloading a new file from
|
||||||
the remote that listContents found. retrieveExport can't be used because
|
the remote that listContents found. retrieveExport can't be used because
|
||||||
it has a Key parameter and the key is not yet known in this case.
|
it has a Key parameter and the key is not yet known in this case.
|
||||||
|
(The callback generating a key will let eg S3 record the S3 version id for
|
||||||
|
the key.)
|
||||||
|
|
||||||
storeExportWithContentIdentifier is used to get the content identifier
|
storeExportWithContentIdentifier is used to get the content identifier
|
||||||
corresponding to what was just stored. It can either get the content
|
corresponding to what it stores. It can either get the content
|
||||||
identifier in reply to the store (as S3 does with versioning), or it can
|
identifier in reply to the store (as S3 does with versioning), or it can
|
||||||
store to a temp location, get the content identifier of that, and then
|
store to a temp location, get the content identifier of that, and then
|
||||||
rename the content into place. When there's a race with a concurrent
|
rename the content into place. When there's a race with a concurrent
|
||||||
writer, it needs to avoid getting the ContentIdentifier for data written by
|
writer, it needs to avoid getting the wrong ContentIdentifier for data
|
||||||
the other writer.
|
written by the other writer.
|
||||||
|
|
||||||
TODO what's needed to work around the other race condition discussed above?
|
TODO what's needed to work around the other race condition discussed above?
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue