在iOS中从Kinvey下载文件

时间:2016-03-25 07:59:55

标签: ios objective-c iphone download kinvey

我在这里阅读了关于kinvey的文件: http://devcenter.kinvey.com/ios/guides/files#DownloadingtoCachesDirectory

他们也提供了样本功能:

Error Domain=KCSServerErrorDomain Code=401 "The credentials used to authenticate this request are not authorized to run this operation. Please retry your request with appropriate credentials"

但是当我用文件ID替换“myId”时,它给了我这个错误:

models.Movie.findAll({
    include: [{
        model: models.Person,
        as: 'persons',
        through: {attributes: ["role"]}
    }]
}).then(function(movies) {
    res.json(movies);
});

虽然我可以使用相同的凭据(secret,api_key)访问我在kinvey(同一用户)上创建的其他集合

在调用此函数之前是否还有其他要求?

谢谢

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我从kinvey支持团队那里伸出了got help

我通过设置" acl"解决了这个问题。对于我上传的每个文件。根据{{​​3}}:" 默认情况下,该文件仅供创建用户使用。",这就是造成问题的原因。

我现在上传这样的文件:

    let metadata = KCSMetadata()
    metadata.setGloballyReadable(true)

    let data = UIImagePNGRepresentation(image)

    KCSFileStore.uploadData(
        data,
        options: options: [KCSFileACL : metadata],
        completionBlock: {KCSFileUploadCompletionBlock!},
        progressBlock: nil)

这允许任何用户读取该特定文件。我之后使用KCSUser.createAutogeneratedUser()来读取文件。

是的,您可以访问同一个kinvey应用程序下的其他集合,但需要为文件集合设置权限。因此,您描述为"myId"的文件需要设置适当的权限,然后才能由其他用户下载,而不是上传文件的用户。

答案 1 :(得分:0)

您必须是活动用户才能调用此功能。您只需确保已成功登录。