• Stars
    star
    156
  • Rank 238,741 (Top 5 %)
  • Language
    Go
  • Created almost 12 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Webdav bridge for Google Drive

gdrive-webdav

Go Workflow

Simple Google Drive => WebDAV bridge.

Usage

Supported flags:

  • --addr service address, :8765 by default
  • --debug, --trace print more information

Status

Alpha quality. I trust it my files.

  • Linux Nautilus: Readable/Writable
  • Linux davfs2: Some issues
  • Mac Finder: Read-only
  • Cyberduck: Appears to work (works also with Win8)
  • Win8: Cannot connect to http://localhost:8765/ , using WIN8 network share builtin webdav support
    • Win8 MiniRedirector Client does not seem to send correct PROPFIND. Missing xml on request body 0 length.

Litmus test results as of Aug 2022:

-> running `basic':
 0. init.................. pass
 1. begin................. pass
 2. options............... pass
 3. put_get............... pass
 4. put_get_utf8_segment.. pass
 5. put_no_parent......... pass
 6. mkcol_over_plain...... pass
 7. delete................ pass
 8. delete_null........... pass
 9. delete_fragment....... pass
10. mkcol................. pass
11. mkcol_again........... pass
12. delete_coll........... pass
13. mkcol_no_parent....... pass
14. mkcol_with_body....... pass
15. finish................ pass
<- summary for `basic': of 16 tests run: 16 passed, 0 failed. 100.0%
-> running `copymove':
 0. init.................. pass
 1. begin................. pass
 2. copy_init............. pass
 3. copy_simple........... pass
 4. copy_overwrite........ pass
 5. copy_nodestcoll....... WARNING: COPY to non-existant collection '/litmus/nonesuch' gave '500 Internal Server Error' not 409 (RFC2518:S8.8.5)
    ...................... pass (with 1 warning)
 6. copy_cleanup.......... pass
 7. copy_coll............. pass
 8. copy_shallow.......... pass
 9. move.................. pass
10. move_coll............. pass
11. move_cleanup.......... pass
12. finish................ pass
<- summary for `copymove': of 13 tests run: 13 passed, 0 failed. 100.0%
-> 1 warning was issued.
-> running `props':
 0. init.................. pass
 1. begin................. pass
 2. propfind_invalid...... pass
 3. propfind_invalid2..... FAIL (PROPFIND with invalid namespace declaration in body (see FAQ) got 207 response not 400)
 4. propfind_d0........... pass
 5. propinit.............. pass
 6. propset............... pass
 7. propget............... pass
 8. propextended.......... pass
 9. propmove.............. pass
10. propget............... pass
11. propdeletes........... pass
12. propget............... pass
13. propreplace........... pass
14. propget............... pass
15. propnullns............ pass
16. propget............... pass
17. prophighunicode....... pass
18. propget............... pass
19. propremoveset......... pass
20. propget............... pass
21. propsetremove......... pass
22. propget............... pass
23. propvalnspace......... pass
24. propwformed........... pass
25. propinit.............. pass
26. propmanyns............ pass
27. propget............... pass
28. propcleanup........... pass
29. finish................ pass
<- summary for `props': of 30 tests run: 29 passed, 1 failed. 96.7%

Development

Use nix to set up development environment:

nix-shell
go test ./...
go build
golangci-lint run

Testing

You can use litmus tests to test the implementation:

docker build -t litmus litmus && docker run -ti --network=host litmus http://localhost:8765/

Running single group of tests:

docker run -ti --network=host --entrypoint=/usr/local/libexec/litmus/copymove litmus http://localhost:8765/

Evailable tests: basic, copymove, http, locks, props.

To get test log add -v $(pwd)/debug.log:/usr/local/share/litmus/debug.log.

More Repositories

1

scheme-llvm

Scheme
44
star
2

StochasticProcesses.jl

A Julia package for (continuous) stochastic processes
Julia
7
star
3

appengine-java-mapreduce

appengine-java-mapreduce
Java
7
star
4

jquantlib

JQuantLib is a free, open-source, comprehensive framework for quantitative finance, written in 100% Java.
Java
6
star
5

gwt-async-future

Alternative approach to GWT AsyncCallback using functional programming techniques. A fork of http://code.google.com/p/gwt-async-future/
Java
6
star
6

concrete

Fully persistent data structures in Java
Java
4
star
7

appengine-rx

Reactive data processing in Scala on Appengine
Scala
4
star
8

decompiler

Java
3
star
9

cpp-stream-fusion

C++ Stream Fusion
C
3
star
10

email-analyzr

2
star
11

3d-bookmark

Simple bookmark
OpenSCAD
2
star
12

ztd

Zig Tower Defense
C++
2
star
13

mathematica-specialrelativity

Special Relativity in Mathematica
Mathematica
2
star
14

appengine-mapreduce

Appengine Mapreduce
Python
2
star
15

email-links

Email Links Appengine App
2
star
16

niko

Niko is stack-oriented concatenative vector language
C++
2
star
17

software-foundations

Copy of original Software Foundations files (http://www.cis.upenn.edu/~bcpierce/sf/)
Coq
1
star
18

twitter-reader

1
star
19

appengine-java-template

The template I'm using when creating new Appengine+GWT java app.
1
star
20

mikea-finance

Financial Software Exercises
Objective-C
1
star
21

smartthings-metrics

SmartThings application to publish metrics from measurement devices to the cloud.
Groovy
1
star
22

home

My home automation system.
1
star
23

turm

computer chess exercises
C++
1
star
24

gga

High-performant generic graph algorithms for Java.
Scala
1
star
25

appengine-afterburner

Reusable appengine functionality to provide thrust for application development
1
star
26

3d-comb

Comb design for 3d printer
1
star
27

ts-types

A TypeScript Types Manipulation Library
TypeScript
1
star
28

iflam

C++
1
star
29

declix

Declarative Unix
Go
1
star