S3: Support AWS_SESSION_TOKEN
This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
This commit is contained in:
parent
ae5d95d80b
commit
7407a80c27
4 changed files with 18 additions and 5 deletions
|
@ -30,6 +30,7 @@ git-annex (6.20180808) UNRELEASED; urgency=medium
|
||||||
* S3: Support buckets with versioning enabled. When a remote
|
* S3: Support buckets with versioning enabled. When a remote
|
||||||
is configured with exporttree=yes versioning=yes, git-annex can
|
is configured with exporttree=yes versioning=yes, git-annex can
|
||||||
download past versions of exported files from it.
|
download past versions of exported files from it.
|
||||||
|
* S3: Support AWS_SESSION_TOKEN.
|
||||||
* git-annex.cabal: Fix build without assistant, and some other refinements.
|
* git-annex.cabal: Fix build without assistant, and some other refinements.
|
||||||
Thanks fftehnik.
|
Thanks fftehnik.
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,7 @@ import Utility.FileSystemEncoding
|
||||||
import Annex.Content
|
import Annex.Content
|
||||||
import Annex.Url (withUrlOptions)
|
import Annex.Url (withUrlOptions)
|
||||||
import Utility.Url (checkBoth, UrlOptions(..))
|
import Utility.Url (checkBoth, UrlOptions(..))
|
||||||
|
import Utility.Env
|
||||||
|
|
||||||
type BucketName = String
|
type BucketName = String
|
||||||
type BucketObject = String
|
type BucketObject = String
|
||||||
|
@ -698,10 +699,12 @@ genericPublicUrl p baseurl = baseurl ++ p
|
||||||
|
|
||||||
genCredentials :: CredPair -> IO AWS.Credentials
|
genCredentials :: CredPair -> IO AWS.Credentials
|
||||||
genCredentials (keyid, secret) = AWS.Credentials
|
genCredentials (keyid, secret) = AWS.Credentials
|
||||||
<$> pure (T.encodeUtf8 (T.pack keyid))
|
<$> pure (tobs keyid)
|
||||||
<*> pure (T.encodeUtf8 (T.pack secret))
|
<*> pure (tobs secret)
|
||||||
<*> newIORef []
|
<*> newIORef []
|
||||||
<*> pure Nothing
|
<*> (fmap tobs <$> getEnv "AWS_SESSION_TOKEN")
|
||||||
|
where
|
||||||
|
tobs = T.encodeUtf8 . T.pack
|
||||||
|
|
||||||
mkLocationConstraint :: AWS.Region -> S3.LocationConstraint
|
mkLocationConstraint :: AWS.Region -> S3.LocationConstraint
|
||||||
mkLocationConstraint "US" = S3.locationUsClassic
|
mkLocationConstraint "US" = S3.locationUsClassic
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
[[!comment format=mdwn
|
||||||
|
username="joey"
|
||||||
|
subject="""comment 1"""
|
||||||
|
date="2018-09-05T19:36:52Z"
|
||||||
|
content="""
|
||||||
|
Sure, done.
|
||||||
|
"""]]
|
|
@ -9,9 +9,11 @@ for usage examples.
|
||||||
|
|
||||||
The standard environment variables `AWS_ACCESS_KEY_ID` and
|
The standard environment variables `AWS_ACCESS_KEY_ID` and
|
||||||
`AWS_SECRET_ACCESS_KEY` are used to supply login credentials
|
`AWS_SECRET_ACCESS_KEY` are used to supply login credentials
|
||||||
for Amazon. You need to set these only when running
|
for S3. You need to set these only when running
|
||||||
`git annex initremote`, as they will be cached in a file only you
|
`git annex initremote`, as they will be cached in a file only you
|
||||||
can read inside the local git repository.
|
can read inside the local git repository. If you’re working with
|
||||||
|
temporary security credentials, you can also set the `AWS_SESSION_TOKEN`
|
||||||
|
environment variable.
|
||||||
|
|
||||||
A number of parameters can be passed to `git annex initremote` to configure
|
A number of parameters can be passed to `git annex initremote` to configure
|
||||||
the S3 remote.
|
the S3 remote.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue