Commit graph

543 commits

Author SHA1 Message Date
Joey Hess
94b3b8f2d9
update 2020-12-28 17:04:41 -04:00
Joey Hess
b16e6fb4e6
borg appendonly config 2020-12-28 16:23:38 -04:00
Joey Hess
e3d356fe84
borg: add subdir= config
Note that, after changing it with enableremote, syncing won't rescan
known archives in the borg repo using the changed config. Probably not a
problem?

Also used File in some places where filenames that could theoretically
start with - are passed to borg, to avoid it confusing them with
options.
2020-12-23 13:12:11 -04:00
Joey Hess
a2fe994ebb
move unimplemented option to todo 2020-12-22 16:28:13 -04:00
Joey Hess
f31bdd0b19
todo 2020-12-22 15:01:07 -04:00
Joey Hess
4f9969d0a1
optimisation for borg
Skip needing to list importable contents when unchanged since last time.
2020-12-22 15:00:05 -04:00
Joey Hess
3207e8293b
start borg special remote
Compiles, but unusable so far.
2020-12-18 16:03:51 -04:00
Joey Hess
037f8b6863
update 2020-12-18 11:06:23 -04:00
Joey Hess
ef8c36254a
docs for borg special remote
(which DNE yet)
2020-12-17 13:12:35 -04:00
git-annex@6e52e5c5d048aa6b470b95d81fbaf44769d11fbd
21e70142a7 2020-11-21 04:21:26 +00:00
Joey Hess
4c7335caf3
add a pointer for git-annex repos over http
So users are less likely to try to use httpalso for them, which is not
its purpose.
2020-09-29 13:59:51 -04:00
git@3af0a87771c4b55bee8a599b934914cd98d4bc0b
ee1722f7f8 Added a comment 2020-09-10 17:13:00 +00:00
kyle
91f028fab7 Added a comment 2020-09-09 14:28:51 +00:00
git@3af0a87771c4b55bee8a599b934914cd98d4bc0b
cfc74c2f44 Added a comment: Re: Unknown remote type webdav 2020-09-09 10:19:25 +00:00
git@3af0a87771c4b55bee8a599b934914cd98d4bc0b
72f16a8fed Added a comment: Re: Unknown remote type webdav 2020-09-09 09:48:16 +00:00
Joey Hess
6ea511beb4
Removed the S3 and WebDAV build flags
So these special remotes are always supported.

IIRC these build flags were added because the dep chains were a bit too
long, or perhaps because the libraries were not available in Debian stable,
or something like that. That was long ago, those reasons no longer apply,
and users get confused when builtin special remotes are not available, so
it seems best to remove the build flags now.

If this does cause a problem it can be reverted of course..

This commit was sponsored by Jochen Bartl on Patreon.
2020-09-08 12:42:59 -04:00
Joey Hess
17479e45ab
comment 2020-09-08 12:31:37 -04:00
git@3af0a87771c4b55bee8a599b934914cd98d4bc0b
dee38c54d9 Added a comment: Unknown remote type webdav 2020-09-08 13:19:51 +00:00
Joey Hess
854cd2ad47
httpalso: support exporttree=yes
Also tested what happens if the other special remote has importtree=yes
and exporttree=yes, and in that case, download via httpalso works too,
without needing to implement any importtree methods here.

It might be possible to make it automatically set exporttree=yes if the
--sameas does. Didn't try, will probably be layering issues.

Or perhaps it should be inherited by sameas like some
other configs? But then, wouldn't it also make sense to inherit
importree=yes? But as shown here, it's not needed by this kind of
remote.
2020-09-02 11:26:00 -04:00
Joey Hess
8656afd3e1
rename http special remote to httpalso
"http" was too generic and easy to confuse with web. The new name makes
clear it's used in addition to some other remote. And other protocols
can use the same naming scheme.
2020-09-02 10:41:53 -04:00
Joey Hess
571ec900ac
Added http special remote, which is useful for accessing other remotes that publish content stored in them via http/https.
With automatic layout learning!
2020-09-01 15:16:35 -04:00
barak
59c90643cd typo 2020-07-10 14:26:22 +00:00
Joey Hess
138e6a7f9c
remove comment as they also asked the same thing in a forum post, and were anwsered there 2020-06-30 10:43:59 -04:00
http://templeofcrom.duckdns.org/
abc2d3c2cb Added a comment: initremote type=web 2020-06-21 02:24:09 +00:00
meribold
52412b773b AWS tells me that the Reduced Redundancy storage class is less cost effective than Standard and not recommended 2020-06-08 14:58:48 +00:00
Joey Hess
3b15145703
fix name of option 2020-05-11 13:05:57 -04:00
yarikoptic
2d8c8868ef Added a comment 2020-05-10 16:30:51 +00:00
Joey Hess
1532d67c3e
S3: Support signature=v4
To use S3 Signature Version 4. Some S3 services seem to require v4, while
others may only support v2, which remains the default.

I'm also not sure if v4 works correctly in all cases, there is this
upstream bug report: https://github.com/aristidb/aws/issues/262
I've only tested it against the default S3 endpoint.
2020-05-07 13:18:11 -04:00
xloem
b0196ebc48 2020-04-27 18:53:17 +00:00
Joey Hess
8f4e11653d
remove amazon cloud drive, since amazon banned rclone 2020-03-04 22:48:42 -04:00
Joey Hess
5995eba531
improve special remotes list
In several cases, there's an old, maybe unmaintained special remote,
and rclone also supports the service. I don't know which is better,
so I added tips pages for these, listing both possibilies, so users can
fill in the details.

Added some things listed in special_remotes/rclone that were not
in the cloud provider list, so users will see it supports those.
But, omitted S3 and webdav, since it's probably better for users to use
what's built into git-annex than going via rclone.

The rclone list is out of date apparently, as rclone.org has more,
so I added a note at the bottom for users to check.

This commit was sponsored by Ethan Aubin.
2020-03-04 22:27:56 -04:00
Joey Hess
04258f759a
this page is not a bts 2020-02-19 14:52:10 -04:00
Ilya_Shlyakhter
8957006c06 Added a comment: preventing fetching from special remotes 2020-02-19 18:45:10 +00:00
Joey Hess
e02b3b32f1
comment 2020-02-19 13:01:15 -04:00
Dan
ad6cc2178a Added a comment: Avoid fetching from special remotes 2020-02-19 00:22:06 +00:00
Joey Hess
f3682e50e5
response 2020-02-17 12:29:18 -04:00
giuly.ippoliti@c1e2f0d5e40b128900f94f3d107d3719f87c3ff7
993c9e98f2 Added a comment: Disable git annex logs 2020-02-14 19:39:30 +00:00
cnjr2
58ebe5fc28 Added a comment 2020-02-12 10:37:27 +00:00
Joey Hess
2be4122bfc
include passthrough params in --describe-other-params 2020-01-20 16:53:27 -04:00
Joey Hess
99cb3e75f1
add LISTCONFIGS to external special remote protocol
Special remote programs that use GETCONFIG/SETCONFIG are recommended
to implement it.

The description is not yet used, but will be useful later when adding a way
to make initremote list all accepted configs.

configParser now takes a RemoteConfig parameter. Normally, that's not
needed, because configParser returns a parter, it does not parse it
itself. But, it's needed to look at externaltype and work out what
external remote program to run for LISTCONFIGS.

Note that, while externalUUID is changed to a Maybe UUID, checkExportSupported
used to use NoUUID. The code that now checks for Nothing used to behave
in some undefined way if the external program made requests that
triggered it.

Also, note that in externalSetup, once it generates external,
it parses the RemoteConfig strictly. That generates a
ParsedRemoteConfig, which is thrown away. The reason it's ok to throw
that away, is that, if the strict parse succeeded, the result must be
the same as the earlier, lenient parse.

initremote of an external special remote now runs the program three
times. First for LISTCONFIGS, then EXPORTSUPPORTED, and again
LISTCONFIGS+INITREMOTE. It would not be hard to eliminate at least
one of those, and it should be possible to only run the program once.
2020-01-17 16:07:17 -04:00
Joey Hess
89a9877704
update docs
http basic auth has been supported for some time, these docs predate
that support
2019-11-18 13:12:46 -04:00
Joey Hess
161b2ef690
clarify 2019-10-04 11:28:01 -04:00
Joey Hess
0a27f77fee
clarify 2019-10-04 11:27:19 -04:00
Joey Hess
bc98edd25d
improve link text 2019-10-04 11:24:53 -04:00
Joey Hess
8df0152633
finally document initremote type=git 2019-10-04 11:22:46 -04:00
Zoran
689174fc8a Added a comment: Deep Archive Storage Class 2019-09-22 09:02:16 +00:00
Joey Hess
218afb9c0f
comment 2019-09-06 12:05:55 -04:00
Joey Hess
e11c324605
followup; correct misleading comment 2019-09-05 11:31:56 -04:00
https://christian.amsuess.com/chrysn
e4161b6ea5 Added a comment: workaround not working any more 2019-08-21 11:34:23 +00:00
Joey Hess
fb7d92457f
support using gcrypt with git-lfs special remote 2019-08-05 13:43:45 -04:00
Joey Hess
3f450f0f4a
add encryption warning 2019-08-05 11:35:26 -04:00
Joey Hess
87e9ed38b8
expand encryption warning 2019-08-05 10:43:51 -04:00
Joey Hess
f5eb28682a
expand 2019-08-04 13:59:24 -04:00
Joey Hess
c5ed11bc3f
documentation for git-lfs special remote 2019-08-04 13:15:47 -04:00
eigood
32d5261642 Added a comment: Add support for bup daemon? 2019-07-16 23:45:18 +00:00
jk@3f2b4ce16bbac41470815333505aa47b91b7a9a6
48376a0b80 removed 2019-06-28 06:51:31 +00:00
jk@3f2b4ce16bbac41470815333505aa47b91b7a9a6
890e7e60f0 Added a comment: spurious processes being started 2019-06-28 06:51:10 +00:00
jk@3f2b4ce16bbac41470815333505aa47b91b7a9a6
8202eeb574 Added a comment: spurious processes being started 2019-06-28 06:50:53 +00:00
Joey Hess
bb635fffa2
reorg page 2019-05-28 11:53:49 -04:00
Joey Hess
6ad51d5627
comment 2019-05-06 12:29:53 -04:00
Ilya_Shlyakhter
a153a694f4 Added a comment 2019-05-02 16:04:06 +00:00
Joey Hess
7264b9aa8c
tweak wording 2019-05-01 14:29:10 -04:00
Joey Hess
67d6280242
document importree for S3 2019-04-23 13:19:08 -04:00
Joey Hess
3b6ea2c244
document importtree=yes 2019-04-10 09:46:27 -04:00
Joey Hess
39d55a8541
back-compat warning for protocol=https 2019-03-22 12:22:34 -04:00
Joey Hess
7d37011a11
S3: Added protocol= initremote setting, to allow https to be used on a non-standard port
protocol=https implies port=443 and
port=443 implies protocol=https
-- this was necessary because the existing configs set port=443, but
with a protocol setting, users will naturally want to use it, and then
there's no need for them to supply the default https port. So we keep
back-compat, add a nicer way to enable https, and also add support for
non-standard https ports.
2019-03-22 12:17:05 -04:00
Joey Hess
ba6b396a97
improve docs 2019-03-22 09:59:56 -04:00
Joey Hess
5f17a9cc50
docs for importtree config 2019-03-04 15:39:19 -04:00
Joey Hess
7dd2672bd2
remove manual versioning mention from here
git-annex will tell the user if they need to manually enable versioning
2019-01-29 14:13:14 -04:00
basak
29b3d71122 Added a comment: Re: Archive not found 2018-12-18 23:54:27 +00:00
tim@5431dd39464df207b7d46d3cf1bc74c82123ac68
b9c41b11b9 Added a comment: Archive not found 2018-12-18 21:22:54 +00:00
anarcat
185565617e fix typo in manpage link 2018-12-11 21:14:56 +00:00
Joey Hess
ef53ad8b5b
response 2018-09-11 13:37:28 -04:00
Joey Hess
19e91d5ee3
Merge branch 'master' of ssh://git-annex.branchable.com 2018-09-06 14:37:42 -04:00
Joey Hess
b7daf2685f
support public versioned S3 access
Makes git annex whereis display the versionId urls.

And, when a s3 remote is enabled without creds, git-annex will use the
versionId urls to access its contents.

This commit was sponsored by Fernando Jimenez on Patreon.
2018-09-06 14:31:41 -04:00
anarcat
fc78b33389 add the rclone special remote explicitely because it is awesome 2018-09-06 00:58:24 +00:00
Joey Hess
7407a80c27
S3: Support AWS_SESSION_TOKEN
This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
2018-09-05 15:53:57 -04:00
Joey Hess
0ff5a41311
S3 versioning=yes config
Not yet used.

This commit was supported by the NSF-funded DataLad project.
2018-08-30 13:45:28 -04:00
andrew@d9c20810619d89ecb4d8ebe187df122112b82fd9
fb5b2f1b7f Added a comment: Not connect to remote as part of initremote? 2018-08-21 23:34:55 +00:00
Joey Hess
b8780da832
hint about when requesttyle=path is needed 2018-08-01 16:06:34 -04:00
lykos@d125a37d89b1cfac20829f12911656c40cb70018
8238e53527 Add note regarding python lib 2018-07-31 13:41:28 +00:00
Joey Hess
ba0745b5c2
S3: fix documentation of publicurl
5f0f063a7a documented it as being
configured automatically, but the code never did that. Rather than try
to hard-code whatever urls amazon  uses for its buckets, it seems better
to ask the user to find the url and set it.
2018-07-02 12:30:39 -04:00
Joey Hess
28720c795f
limit url downloads to whitelisted schemes
Security fix! Allowing any schemes, particularly file: and
possibly others like scp: allowed file exfiltration by anyone who had
write access to the git repository, since they could add an annexed file
using such an url, or using an url that redirected to such an url,
and wait for the victim to get it into their repository and send them a copy.

* Added annex.security.allowed-url-schemes setting, which defaults
  to only allowing http and https URLs. Note especially that file:/
  is no longer enabled by default.

* Removed annex.web-download-command, since its interface does not allow
  supporting annex.security.allowed-url-schemes across redirects.
  If you used this setting, you may want to instead use annex.web-options
  to pass options to curl.

With annex.web-download-command removed, nearly all url accesses in
git-annex are made via Utility.Url via http-client or curl. http-client
only supports http and https, so no problem there.
(Disabling one and not the other is not implemented.)

Used curl --proto to limit the allowed url schemes.

Note that this will cause git annex fsck --from web to mark files using
a disallowed url scheme as not being present in the web. That seems
acceptable; fsck --from web also does that when a web server is not available.

youtube-dl already disabled file: itself (probably for similar
reasons). The scheme check was also added to youtube-dl urls for
completeness, although that check won't catch any redirects it might
follow. But youtube-dl goes off and does its own thing with other
protocols anyway, so that's fine.

Special remotes that support other domain-specific url schemes are not
affected by this change. In the bittorrent remote, aria2c can still
download magnet: links. The download of the .torrent file is
otherwise now limited by annex.security.allowed-url-schemes.

This does not address any external special remotes that might download
an url themselves. Current thinking is all external special remotes will
need to be audited for this problem, although many of them will use
http libraries that only support http and not curl's menagarie.

The related problem of accessing private localhost and LAN urls is not
addressed by this commit.

This commit was sponsored by Brett Eisenberg on Patreon.
2018-06-16 11:57:50 -04:00
Joey Hess
c3c28f7617
add GETINFO to external protocol (for ronnypfa)
External special remotes can now add info to `git annex info $remote`, by
replying to the GETINFO message.

Had to generalize some helpers to allow consuming multiple messages from
the remote.

The code added to Remote/* here is AGPL licensed, thus changed the license
of the files.

This commit was sponsored by Jake Vosloo on Patreon.
2018-06-08 11:56:24 -04:00
Joey Hess
a0d0436185
response 2018-05-09 16:20:07 -04:00
iakornfeld@eaf45f0b645324dd9f1f57f226377caddf86a80e
dcc70dcb23 Added a comment: Git 2018-05-09 13:51:56 +00:00
Joey Hess
ae75eb06bc
exporttree support for adb special remote
This commit was sponsored by Michael Magin.
2018-03-27 16:28:41 -04:00
Joey Hess
2927618d35
Added adb special remote which allows exporting files to Android devices.
git annex testremote passes.

exportree not implemented yet, although the documentation talks about it,
since it will be the main way this remote will be used.

The adb push/pull progress is displayed for now; it would be better
to consume it and use it to update the git-annex progress bar.

This commit was sponsored by andrea rota.
2018-03-27 14:54:41 -04:00
Joey Hess
bed6773346
Support exporttree=yes for rsync special remotes.
Renaming is not supported; it might be possible to use --fuzzy to get rsync
to notice the file is being renamed, but that is a bit ..fuzzy.

On the other hand, interrupted transfers of an exported file are resumed,
since rsync is great at that. Had to adjust the exporttree docs, which
said interrupted transfers would restart.

Note that remove no longer makes the empty directory dummy, instead
sending the top-level empty directory. This works just as well and I
noticed the dummy was unncessary when refactoring it into removeGeneric.
Verified that behavior of remove is not changed, and git annex
testremote does pass.

This commit was sponsored by Brock Spratlen on Patreon.
2018-02-28 13:36:20 -04:00
xloem
7613a5e81c Added a comment: IPFS Deduplication 2017-10-07 19:46:12 +00:00
Joey Hess
9f4ffe65e9
implement removeExportDirectory
Not yet called by Command.Export.

WebDAV needs this to clean up empty collections. Also, example.sh turned
out to not be cleaning up directories when removing content
from them, so it made sense for it to use this.

Remote.Directory did not need it, and since its cleanup method for empty
directories is more efficient than what Command.Export will need to do
to find empty directories, it uses Nothing so that extra work can be
avoided.

This commit was sponsored by Thom May on Patreon.
2017-09-15 13:18:21 -04:00
Joey Hess
4d3a464e83
export to webdav
This basically works, but there's a bug when renaming a file that leaves
a .git-annex-temp-content-key file in the webdav store, that never gets
cleaned up.

Also, exporting files with spaces to box.com seems to fail; perhaps it
does not support it?

This commit was supported by the NSF-funded DataLad project.
2017-09-12 14:10:09 -04:00
Joey Hess
2bb96e9c32
very delayed response now that feature is added 2017-09-08 16:47:42 -04:00
Joey Hess
44cd5ae313
S3 export (untested)
It opens a http connection per file exported, but then so does git
annex copy --to s3.

Decided not to munge exported filenames for IA. Too large a chance of
the munging having confusing results. Instead, export of files not
supported by IA, eg with spaces in their name, will fail.

This commit was supported by the NSF-funded DataLad project.
2017-09-08 15:46:24 -04:00
Joey Hess
a1b195d84c
External special remote protocol extended to support export.
Also updated example.sh to support export.

This commit was supported by the NSF-funded DataLad project.
2017-09-08 14:24:05 -04:00
Joey Hess
28e2cad849
implement exporttree=yes configuration
* Only export to remotes that were initialized to support it.
* Prevent storing key/value on export remotes.
* Prevent enabling exporttree=yes and encryption in the same remote.

SetupStage Enable was changed to take the old RemoteConfig.
This allowed only setting exporttree when initially setting up a
remote, and not configuring it later after stuff might already be stored
in the remote.

Went with =yes rather than =true for consistency with other parts of
git-annex. Changed docs accordingly.

This commit was supported by the NSF-funded DataLad project.
2017-09-04 13:09:38 -04:00
Joey Hess
8f35c6584d
documentation for export
This commit was sponsored by Ole-Morten Duesund on Patreon.
2017-08-29 13:25:48 -04:00
Joey Hess
fdbfe88168
fix external script for filenames with spaces from protocol
Fix the external special remotes git-annex-remote-ipfs,
git-annex-remote-torrent and the example.sh template to correctly support
filenames with spaces.

This commit was sponsored by John Peloquin on Patreon.
2017-08-17 16:20:09 -04:00
fiatjaf
64ab727a10 Added a comment 2017-07-10 13:08:53 +00:00
http://xgm.de/oid/
61f362b4ff 2017-02-14 18:14:24 +00:00