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

tam*_*eta 7 javascript file-upload node.js socket.io owncloud

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

Dropbox提供了一些API来执行此操作:https://www.dropbox.com/developers但我正在寻找像ownCloud这样的免费解决方案,我可以拥有更大的存储空间并拥有自己的私有服务器.

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

小智 12

@Javier Gonzalez,要上传文件......

糟糕的选择:

curl -X PUT "http://yourserver.com/owncloud/remote.php/webdav/file.zip" -F myfile=@"/Users/Javi/Downloads/file.zip"
Run Code Online (Sandbox Code Playgroud)

对于,上传的文件将包含http标头.

更好的选择:

curl -X PUT "http://yourserver.com/owncloud/remote.php/webdav/file.zip" --data-binary @"/Users/Javi/Downloads/file.zip"
Run Code Online (Sandbox Code Playgroud)

或者只使用curl -T文件名网址上传

  • @TomasSykora你可以使用curl和webdav在ownclod中创建文件夹.这是如何创建一个当前日期为名称的文件夹:curl -u user:pass -X MKCOL"http://example.org/owncloud/remote.php/webdav/$(date'+%d-%b- %Y')"请参阅文档:https://doc.owncloud.org/server/7.0/user_manual/files/files.html#accessing-files-using-curl (2认同)

小智 7

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

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

并将输入流添加到请求以读取文件.

这是CURL命令:

curl -X PUT -u username:password "http://yourserver.com/owncloud/remote.php/webdav/file.zip" -F myfile=@"/Users/Javi/Downloads/file.zip"
Run Code Online (Sandbox Code Playgroud)

您还可以检查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]];
Run Code Online (Sandbox Code Playgroud)


小智 1

最简单的方法是使用owncloud的webdav接口