Merge branch 'master' of ssh://git-annex.branchable.com
This commit is contained in:
commit
50398c69a1
1 changed files with 41 additions and 0 deletions
|
@ -0,0 +1,41 @@
|
|||
[[!comment format=mdwn
|
||||
username="sts"
|
||||
subject="comment 1"
|
||||
date="2015-12-07T08:12:26Z"
|
||||
content="""
|
||||
ok, I could find the source of the problem: they use sabredav as WebDAV server and sabredav does not support chunked transfers:
|
||||
|
||||
// Intercepting the Finder problem
|
||||
if (($expected = $request->getHeader('X-Expected-Entity-Length')) && $expected > 0) {
|
||||
|
||||
/*
|
||||
Many webservers will not cooperate well with Finder PUT requests,
|
||||
because it uses 'Chunked' transfer encoding for the request body.
|
||||
|
||||
The symptom of this problem is that Finder sends files to the
|
||||
server, but they arrive as 0-length files in PHP.
|
||||
|
||||
If we don't do anything, the user might think they are uploading
|
||||
files successfully, but they end up empty on the server. Instead,
|
||||
we throw back an error if we detect this.
|
||||
|
||||
The reason Finder uses Chunked, is because it thinks the files
|
||||
might change as it's being uploaded, and therefore the
|
||||
Content-Length can vary.
|
||||
|
||||
Instead it sends the X-Expected-Entity-Length header with the size
|
||||
of the file at the very start of the request. If this header is set,
|
||||
but we don't get a request body we will fail the request to
|
||||
protect the end-user.
|
||||
*/
|
||||
|
||||
// Only reading first byte
|
||||
$firstByte = fread($body, 1);
|
||||
if (strlen($firstByte) !== 1) {
|
||||
throw new Exception\Forbidden('This server is not compatible with OS/X finder. Consider using a different WebDAV client or webserver.');
|
||||
}
|
||||
|
||||
...
|
||||
|
||||
Although, I did not told git-annex to chunk the transfer :-/, because I did not append a 'chunk' parameter. Any ideas how to fix that?
|
||||
"""]]
|
Loading…
Reference in a new issue