Dan Walters
c49a71f438
dlna: move root descriptor xml template to the static assets
...
Reduce binary size.
2019-09-17 12:52:32 +01:00
Dan Walters
5f07bbf8ce
dlna: fake out implementation of X_MS_MediaReceiverRegistrar
...
Using the same responses as minidlna.
Fixes #3502 .
2019-09-17 12:52:02 +01:00
Dan Walters
2f10472df3
dlna: count the number of children in the response to BrowseMetadata
2019-09-17 12:28:20 +01:00
Dan Walters
8c038326b9
dlna: correct output for ContentDirectoryService#Browse with BrowseMetadata
...
We were marshalling the "cds object" instead of the "upnp object".
Fixes #3253 (I think)
2019-09-15 16:30:39 +01:00
Nick Craig-Wood
89b6d89077
build: drop support for go1.9
2019-09-04 10:23:48 +01:00
Nick Craig-Wood
bd61eb89bc
serve http/webdav/restic/rc: rename --prefix flag to --baseurl #3398
...
The name baseurl is widely accepted for this feature so I decided to
rename it before it made it into a stable release.
2019-08-24 09:10:50 +01:00
Nick Craig-Wood
67fae720d7
serve dlna: add more builtin mime types to cover standard audio/video
...
Add a minimal number of mime types to augment go's built in types
for environments which don't have access to a mime.types file (eg
Termux on android)
Fixes #3475
2019-08-23 13:30:48 +01:00
Nick Craig-Wood
39ae7c7ac0
serve dlna: fix missing mime types on Android causing missing videos
...
Before this fix serve dlna was only using the built in database of
mime types to look up the mime types of files. On Android (and
possibly other systems) this is very small.
The symptoms of this problem was serve dlna only listing images and
not videos.
After this fix we use the backend's idea of the mime type if possible
which will be more accurate.
Fixes #3475
2019-08-23 13:30:48 +01:00
Chaitanya
159f2e29a8
rcd: prefix patch for rcd and web-gui
2019-08-22 08:36:10 +01:00
Nick Craig-Wood
27a9d0f570
serve dlna: only select interfaces which can multicast for SSDP
...
Before this change we used all UP interfaces - now we need the
interfaces to be UP and MULTICAST capable.
See: https://forum.rclone.org/t/error-using-rclone-serve-dlna-on-termux/11083
2019-08-20 16:24:56 +01:00
Nick Craig-Wood
af3c47d282
fstest: remove -subdir flag as it no longer tests anything useful #3421
2019-08-17 09:54:19 +01:00
Nick Craig-Wood
71e172a139
serve/sftp: support empty "md5sum" and "sha1sum" commands
...
This is to enable the new command detection to work with the sftp
backend.
2019-08-14 20:54:08 +01:00
Nick Craig-Wood
0693deea1c
rc: fix unmarshalable http.AuthFn in options and put in test for marshalability
2019-08-10 16:22:17 +01:00
Nick Craig-Wood
62b769a0a7
serve sftp: fix spurious debugs on server close
2019-08-08 12:37:50 +01:00
Nick Craig-Wood
84b5da089e
serve sftp: fix detection of whether server is authorized
2019-08-08 12:37:50 +01:00
Nick Craig-Wood
72d5b11d1b
serve restic: rename test file to avoid it being linked into main binary
2019-08-06 12:42:52 +01:00
Nick Craig-Wood
23910ba53b
servetest: add tests for --auth-proxy
2019-08-06 11:43:42 +01:00
Nick Craig-Wood
ee7101e6af
serve: factor out common testing parts for ftp, sftp and webdav tests
2019-08-06 11:43:42 +01:00
Nick Craig-Wood
36c1b37dd9
serve webdav: support --auth-proxy
2019-08-06 11:43:42 +01:00
Nick Craig-Wood
72782bdda6
serve ftp: implement --auth-proxy
2019-08-06 11:43:42 +01:00
Nick Craig-Wood
b94eef16c1
serve ftp: refactor to bring into line with other serve commands
2019-08-06 11:43:42 +01:00
Nick Craig-Wood
d75fbe4852
serve sftp: implement auth proxy
2019-08-06 11:43:42 +01:00
Nick Craig-Wood
e6ab237fcd
serve: add auth proxy infrastructure
2019-08-06 11:43:42 +01:00
Nick Craig-Wood
02eb747d71
serve http/webdav/restic: implement --prefix - fixes #3398
...
--prefix enables the servers to serve from a non root prefix. This
enables easier proxying.
2019-08-06 10:30:48 +01:00
Nick Craig-Wood
57d5de6fba
build: fix up package paths after repo move
...
git grep -l github.com/ncw/rclone | xargs -d'\n' perl -i~ -lpe 's|github.com/ncw/rclone|github.com/rclone/rclone|g'
goimports -w `find . -name \*.go`
2019-07-28 18:47:38 +01:00
Aleksandar Jankovic
8243ff8bc8
accounting: isolate stats to groups
...
Introduce stats groups that will isolate accounting for logically
different transferring operations. That way multiple accounting
operations can be done in parallel without interfering with each other
stats.
Using groups is optional. There is dedicated global stats that will be
used by default if no group is specified. This is operating mode for CLI
usage which is just fire and forget operation.
For running rclone as rc http server each request will create it's own
group. Also there is an option to specify your own group.
2019-07-28 14:48:19 +01:00
Aleksandar Jankovic
be0464f5f1
accounting: change stats interface
...
This is done to make clear ownership over accounting object and prepare
for removing global stats object.
Stats elapsed time calculation has been altered to account for actual
transfer time instead of stats creation time.
2019-07-28 14:48:19 +01:00
Laura
dde4dd0198
fichier: 1fichier support - fixes #2908
...
This was started by Fionera, finished off by Laura with fixes and more
docs from Nick.
Co-authored-by: Fionera <fionera@fionera.de>
Co-authored-by: Nick Craig-Wood <nick@craig-wood.com>
2019-06-30 18:35:01 +01:00
Aleksandar Jankovic
f78cd1e043
Add context propagation to rclone
...
- Change rclone/fs interfaces to accept context.Context
- Update interface implementations to use context.Context
- Change top level usage to propagate context to lover level functions
Context propagation is needed for stopping transfers and passing other
request-scoped values.
2019-06-19 11:59:46 +01:00
Gary Kim
6e8e620e71
serve webdav: fix serveDir not being updated with changes from webdav
...
Fixes an issue where changes such as renaming done using webdav
would not be reflected in the html directory listing
2019-06-15 10:00:46 +01:00
Gary Kim
5597d6d871
serve webdav: add tests for serve http functionality
2019-06-15 10:00:46 +01:00
Gary Kim
622e0d19ce
serve webdav: combine serve webdav and serve http
2019-06-15 10:00:46 +01:00
Florian Apolloner
939b19c3b7
cmd: add support for private repositories in serve restic
- fixes #3247
2019-06-12 13:39:38 +01:00
Nick Craig-Wood
550ab441c5
rc: Skip auth for OPTIONS request
...
Before this change using --user and --pass was impossible on the rc
from a browser as the browser needed to make the OPTIONS request first
before sending Authorization: headers, but the OPTIONS request
required an Authorization: header.
After this change we allow OPTIONS requests to go through without
checking the Authorization: header.
2019-06-10 19:33:45 +01:00
Dan Walters
f0e439de0d
dlna: improve logging and error handling
...
Mostly trying to get logging to happen through rclone's log methods.
Added request logging, and a trace parameter that will dump the
entire request/response for debugging when dealing with poorly
written clients.
Also added a flag to specify the device's "Friendly Name" explicitly,
and made an attempt at allowing mime types in addition to video.
2019-05-27 14:42:33 +01:00
Dan Walters
e5464a2a35
dlna: add some additional metadata, headers, and samsung extensions
...
Again, mostly just copying what I see in other implementations. This
does seem to have done the trick so that I can now pause, fast forward,
rewind, etc., on my Samsung F series.
2019-05-27 14:42:33 +01:00
Dan Walters
78d38dda56
dlna: icons and compatibility improvements
...
Brings in icons for devices to display. Based on what some
other open implementations have done, it's worth having a simple
stub implmentation of ConnectionManagerService. Advertise
X_MS_MediaReceiverRegistrar as well, which sounds like it
is necessary for certain MSFT devices (like the X-Box.)
2019-05-27 14:42:33 +01:00
Dan Walters
60bb01b22c
dlna: refactor the serve mux
...
Trying to make it a little easier to understand and work on all the
available routes, etc.
2019-05-27 14:42:33 +01:00
Dan Walters
95a74e02c7
dlna: use a template to render the root service descriptor
...
For various reasons, it seems to make sense to move away from generating
the XML with objects. Namespace support is minimal in go, the objects we
have are in an upstream project, and some subtitlties seem likely to
cause problems with poorly written clients.
This removes the empty <iconList></iconList>, but is otherwise the
same output.
2019-05-27 14:42:33 +01:00
Dan Walters
d014aef011
dlna: reformat descriptors with tabs
...
Reduces size of embedded assets.
2019-05-27 14:42:33 +01:00
Dan Walters
be8c23f0b4
dlna: use vfsgen for static assets
...
As more assets are added, using vfsgen makes things a bit easier.
2019-05-27 14:42:33 +01:00
Nick Craig-Wood
1f19b63264
serve sftp: serve an rclone remote over SFTP
2019-05-11 23:39:04 +01:00
calistri
f865280afa
Adds a public IP flag for ftp. Closes #3158
...
Fixed variable names
2019-05-09 22:52:21 +01:00
Nick Craig-Wood
8beab1aaf2
build: more pre go1.8 workarounds removed
2019-05-08 15:14:51 +01:00
Nick Craig-Wood
9df322e889
tests: make test servers choose a random port to make more reliable
...
Tests have been randomly failing with messages like
listen tcp 127.0.0.1:51778: bind: address already in use
Rework all the test servers so they choose a random free port on
startup and use that for the tests to avoid.
2019-05-01 16:09:50 +01:00
Fabian Möller
48c09608ea
fix spelling
2019-04-30 14:12:18 +02:00
Nick Craig-Wood
16d8014cbb
build: drop support for go1.8
2019-04-15 21:49:58 +01:00
Nick Craig-Wood
e5f4210b09
serve restic: use walk.ListR for listing
...
This is effectively what the old code did anyway so this should not
make any functional changes.
2019-03-16 17:41:12 +00:00
Dan Walters
caf318d499
dlna: add connection manager service description
...
The UPnP MediaServer spec says that the ConnectionManager service is
required, and adding it was enough to get dlna support working on my
other TV (LG webOS 2.2.1).
2019-03-15 13:14:31 +00:00
Dan Walters
95194adfd5
dlna: fix root XML service descriptor
...
The SCPD URL was being set after marshalling the XML, and thus coming
out blank. Now works on my Samsung TV, and likely fixes some issues
reported by others in #2648 .
2019-03-11 17:31:32 +00:00
Nick Craig-Wood
d966cef14c
build: fix problems found with unconvert
2019-02-02 11:45:07 +00:00
nicolov
0b7fdf16a2
serve: add dlna server
2019-01-09 19:14:14 +00:00
Jay
082a7065b1
Use vfsgen for static HTML templates
2018-12-26 15:07:21 +00:00
Nick Craig-Wood
c1dd76788d
httplib: make http serving with auth generate INFO messages on auth fail
...
2018/12/13 12:13:44 INFO : /: 127.0.0.1:39696: Basic auth challenge sent
2018/12/13 12:13:54 INFO : /: 127.0.0.1:40050: Unauthorized request from ncw
Fixes #2834
2018-12-14 13:38:49 +00:00
Nick Craig-Wood
e56c6402a7
serve restic: disallow on go1.8 because of dependent library changes
...
golang.org/x/net/http2 no longer builds on go1.8
2018-11-26 14:10:33 +00:00
Nick Craig-Wood
d0eb8ddc30
serve webdav: disallow on go1.8 due to dependent library changes
...
golang.org/x/net/webdav no longer builds with go1.8
2018-11-26 14:10:33 +00:00
Nick Craig-Wood
fa0a9653d2
rc: methods marked as AuthRequired need auth unless --rc-no-auth
...
Methods which can read or mutate external storage will require
authorisation - enforce this. This can be overidden by `--rc-no-auth`.
2018-11-04 20:42:57 +00:00
Nick Craig-Wood
89550e7121
rcserver: serve directories as well as files
2018-11-04 15:11:51 +00:00
Nick Craig-Wood
370c218c63
cmd/http: factor directory serving routines into httplib/serve and write tests
2018-11-04 12:46:44 +00:00
Nick Craig-Wood
b972dcb0ae
rc: implement options/blocks,get,set and register options
2018-11-03 11:32:00 +00:00
Nick Craig-Wood
aa9b2c31f4
serve/restic: factor object serving into cmd/httplib/serve
2018-11-03 11:32:00 +00:00
Nick Craig-Wood
bb5637d46a
serve http, webdav, restic: ensure rclone exits if the port is in use
2018-11-02 17:32:20 +00:00
Nick Craig-Wood
ade252f13b
build: fixup code formatting after goimports change
2018-10-13 22:47:12 +01:00
Nick Craig-Wood
d4ee7277c0
serve ftp: disable on plan9 since it doesn't compile
2018-09-17 08:50:34 +01:00
Antoine GIRARD
4a3efa5d45
cmd/serve: add ftp server - implement #2151
2018-09-17 08:50:34 +01:00
Denis
1c578ced1c
cmd: add copyurl command - Fixes #1320
2018-08-30 16:45:41 +01:00
Nick Craig-Wood
b3217d2cac
serve webdav: make Content-Type without reading the file and add --etag-hash
...
Before this change x/net/webdav would open each file to find out its
Content-Type.
Now we override the FileInfo and provide that directly from rclone.
An --etag-hash has also been implemented to override the ETag with the
hash passed in.
Fixes #2273
2018-08-26 21:50:41 +01:00
Nick Craig-Wood
8c0335a176
build: fix for goimports format change
...
See https://github.com/golang/go/issues/23709
2018-07-03 22:33:15 +01:00
Nick Craig-Wood
be54fd8f70
Remove builds conditional on go1.7 since that is now guaranteed #2154
...
Old fallback code was deleted and the go1.7 style code inlined where
appropriate.
2018-04-07 11:42:55 +01:00
Nick Craig-Wood
80588a5a6b
Replace "golang.org/x/net/context" with "context" for go1.7+ #2154
2018-04-07 11:42:08 +01:00
Matt Holt
e13f65b953
serve restic: Print actual listener address
2018-04-04 14:56:26 +01:00
Alexander Neumann
5b8977a053
serve restic: Disallow overwriting files in append-only mode - Fixes #2195
...
* Disallow overwriting files in append-only mode
* Add tests for append-only mode
2018-04-04 14:49:13 +01:00
Steve Kriss
2c2bb0f750
cmd/serve/restic: add append-only mode
2018-03-30 19:54:52 +01:00
Nick Craig-Wood
1afac32d80
serve restic: script for running integration test against all remotes
2018-03-18 19:15:39 +00:00
Nick Craig-Wood
26fbd00b4f
serve restic: don't buffer the JSON output in memory for the list command
2018-03-18 16:26:58 +00:00
Nick Craig-Wood
1313b529ff
serve restic: use ListR (--fast-list) if available
...
For Restic's use case, --fast-list will use less transactions and
calling ListR directly means we can avoid the usual memory overhead.
2018-03-18 16:22:05 +00:00
Nick Craig-Wood
82e835d6fc
serve restic: make it easy to run integration tests against any remote
...
Just `cd cmd/serve/restic` then `go test -v -remote TestRemote:`
2018-03-18 14:23:56 +00:00
Nick Craig-Wood
fa867a9a4c
serve restic: implement accounting for uploads and downloads
...
This means the bandwidth stats will be correct and the bandwidth
throttling will work correctly. This was forgotten as a previous
iteration of the code was using the higher level operations.Rcat which
took care of this.
2018-03-18 14:19:43 +00:00
Alexander Neumann
84776c4e43
serve/restic: Remove log message on Close
2018-03-14 21:50:33 +00:00
Nick Craig-Wood
7ccc6080b0
serve restic: add more info to GET request error
2018-03-14 21:09:47 +00:00
Nick Craig-Wood
8bb2854fe4
httplib: allow the flags to be prefixed when instantiating a server
2018-03-14 22:58:20 +02:00
Nick Craig-Wood
4e90ad04d5
serve restic: only accept v2 API requests for list
2018-03-11 17:35:01 +00:00
Alexander Neumann
fa003e89b6
serve restic: When listing return empty list instead of 'null'
2018-03-11 14:48:46 +00:00
Alexander Neumann
5114b11d6f
serve restic: add http2 server on stdin/stdout
2018-03-11 14:48:46 +00:00
Alexander Neumann
f832433fa5
serve restic: Return empty list for non-existing dirs
2018-03-11 14:48:43 +00:00
Nick Craig-Wood
d073efdc6c
serve restic: serves a remote in restic REST API format
2018-03-11 14:43:03 +00:00
Nick Craig-Wood
9e48748182
httplib: Note that authentication is a good idea for non localhost
2018-03-11 14:38:54 +00:00
Nick Craig-Wood
334bf49d30
httplib: add Close() method to shut the server down and use it in tests
2018-02-19 15:45:24 +00:00
Nick Craig-Wood
d8f78a7266
serve http/webdav: update docs on SSL
2018-02-19 14:08:17 +00:00
Nick Craig-Wood
358c1fbac9
serve http/webdav: support SSL/TLS
2018-02-16 18:28:10 +00:00
Nick Craig-Wood
cc9d7156e4
serve http/webdav: add --user --pass authentication #1802
2018-02-16 18:28:10 +00:00
Nick Craig-Wood
221a8a9c5d
serve http/webdav: add --htpasswd option for authentication #1802
2018-02-16 18:28:10 +00:00
Nick Craig-Wood
5530662ccc
serve http/webdav: factor common http server creation to httplib
2018-02-16 17:48:20 +00:00
Nick Craig-Wood
517bdc719b
vfs: make specialized file Open functions private
2018-01-19 11:46:01 +00:00
Nick Craig-Wood
11da2a6c9b
Break the fs package up into smaller parts.
...
The purpose of this is to make it easier to maintain and eventually to
allow the rclone backends to be re-used in other projects without
having to use the rclone configuration system.
The new code layout is documented in CONTRIBUTING.
2018-01-15 17:51:14 +00:00
Nick Craig-Wood
60afda007b
Move dircache, oauthutil, rest and pacer modules into lib
2018-01-12 17:07:38 +00:00
Nick Craig-Wood
b8b620f5c2
Move all backends into backend directory
2018-01-12 17:07:38 +00:00
Nick Craig-Wood
65618afd8c
serve/http: fix serving files with : in - fixes #1939
2018-01-05 17:25:05 +00:00
Nick Craig-Wood
c560017934
vfs: add Path method to Node and use it to stop reading nil DirEntry
...
All DirEntry calls now have been checked for nil or converted to use Path.
2017-11-20 12:46:22 +00:00
Nick Craig-Wood
05a1e1532b
vfs,mount,cmount,serve: Add documentation for vfs caching modes
2017-11-20 12:46:21 +00:00
ishuah
aec2265be0
rclone: implement exit codes - #1136
2017-11-15 17:48:37 +03:00
Nick Craig-Wood
68d0b5adbb
serve webdav: this implements a webdav server for any rclone remote.
2017-11-04 10:24:11 +00:00
Nick Craig-Wood
16e16bc220
serve http: use vfs to cache the directories and support Range header
2017-11-04 10:24:11 +00:00
Nick Craig-Wood
96665c16cb
serve http: make it compile on go1.6 and go1.7
2017-10-26 21:52:29 +01:00
Nick Craig-Wood
cd146415d1
serve http: error if Range supplied (not supported yet)
...
Also add Server header
2017-10-24 23:18:36 +01:00
Nick Craig-Wood
2740c965c0
serve http: Fix timeouts
2017-10-24 23:07:46 +01:00
Nick Craig-Wood
6669165b6b
serve http command to serve a remote over HTTP
...
This implements a basic webserver to serve an rclone remote over HTTP.
It also sets up the framework for adding more types of server later.
2017-10-24 13:25:49 +01:00