swift-doro-webdav-client

轻量级 WebDAV 客户端,适用于 macOS,无需 XML 库依赖

概要

let baseUrl = "http://192.168.50.55:81/dav/"
let usr = "user"
let passwd = "password"

let wd = DoroWebDAVClient(baseUrl: baseUrl, usr: usr, passwd: passwd)
let fileData = "Hello, World!".data(using: .utf8)!

//
// Upload
//
// curl --user 'aaa:aaa' -T t1 http://192.168.50.55:81/dav/t1
//

await Task {
    let ret = await wd.write("http://192.168.50.55:81/dav/doroTestFile", data: fileData)
    dump(ret)
}.value
    
//
// Read
//
// curl --user 'aaa:aaa' http://192.168.50.55:81/dav/t1
//

await Task {
    let ret = await wd.read("http://192.168.50.55:81/dav/doroTestFile")
    print(String(data: ret!, encoding: .utf8)!)
}.value
        
//
// List
//
// curl --user 'aaa:aaa' -X PROPFIND -H "Depth: 1" http://192.168.50.55:81/dav/
//

await Task {
    let ret = await wd.list()
    dump(ret)
}.value

//
// Delete
//
// curl --user 'aaa:aaa' -X DELETE http://192.168.50.55:81/dav/t1
//

await Task {
    let ret = await wd.delete("http://192.168.50.55:81/dav/doroTestFile")
    dump(ret)
}.value

测试

  1. 在测试前,请在 swift_doro_webdav_clientTests.swift 中设置您的 WebDAV 服务器信息。
  2. 在测试前,请检查您是否拥有 WebDAV 服务器上的必要权限。
  3. 已针对 lighttpd-mod-webdav 进行过测试。