GCDWebServer:如何更改服务器上WebDAV操作的文件权限?(iOS)
我目前正在尝试使用GCDWebServer托管本地网页,该网页在应用程序启动时由WKWebView请求。我希望能够在应用程序运行时通过UIDocumentPickerViewController获取文件,从而将外部文件上载到服务器。在不同的端口上使用单独的GCDWebDAVServer似乎是一个好主意 但是,如果我尝试将文件上载到WebDAV服务器,我会从响应中获得以下数据:GCDWebServer:如何更改服务器上WebDAV操作的文件权限?(iOS),ios,swift,http,webdav,gcdwebserver,Ios,Swift,Http,Webdav,Gcdwebserver,我目前正在尝试使用GCDWebServer托管本地网页,该网页在应用程序启动时由WKWebView请求。我希望能够在应用程序运行时通过UIDocumentPickerViewController获取文件,从而将外部文件上载到服务器。在不同的端口上使用单独的GCDWebDAVServer似乎是一个好主意 但是,如果我尝试将文件上载到WebDAV服务器,我会从响应中获得以下数据: <!DOCTYPE html><html lang="en"><hea
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>HTTP Error 500</title></head><body><h1>HTTP Error 500: Failed moving uploaded file to "/arbitrary.txt"</h1><h3>[NSCocoaErrorDomain] “35B890AC-7CD2-4A10-A67F-BAED3D6C34AB-3278-000005593C778876” couldn’t be moved because you don’t have permission to access “www”. (513)</h3></body></html>
以及用于将文件上载到WebDAV服务器的PUT请求的代码:
让importedFileUrl=url.first!
做{
let data=try data(contentsOf:importedFileUrl)
var request=URLRequest(url:url(字符串):http://localhost:\(WEBDAV_PORT)/arbitral.txt“!)
request.httpMethod=“PUT”
让task=URLSession(配置:.ephemeral).uploadTask(with:request,from:data){data,response,中的错误
打印(“数据:\(字符串(描述:数据))”)
打印(“响应:\(字符串(描述:响应))”)
打印(“错误:\(字符串(描述:错误)))
打印(字符串(解码:data!,as:UTF8.self))
}
task.resume()
}捕捉错误{
createErrorAlert(消息:error.localizedDescription)
}
这与iOS 14本地网络隐私功能无关。我试图修改Info.plist以包含新的密钥,但没有任何更改。似乎www
文件夹没有写入权限
是否有我缺少的功能可以让您更改GCDWebServer中的文件权限,或者是否有解决方法?目前,我能想到的唯一解决办法是在web服务器旁创建一个本地数据库。不允许写入权限的原因是因为我直接从应用程序包提供文件,无法写入 我的解决方案是将该目录的内容复制到Documents目录中,然后使用WebDAV写入该目录
Failed moving uploaded file to "/arbitrary.txt"</h1><h3>[NSCocoaErrorDomain] “35B890AC-7CD2-4A10-A67F-BAED3D6C34AB-3278-000005593C778876” couldn’t be moved because you don’t have permission to access “www”.