0

我们正在尝试从储物柜中提取文件和文件夹,但命令 (/d2l/api/le/(D2LVERSION: version)/locker/myLocker/(string: path)) 不喜欢文件或文件夹中的空格姓名。它返回错误请求或无效令牌,具体取决于我们如何尝试处理末尾的空格(即字符串替换为 %20)。

我们如何检索名称中带有空格的文件/文件夹?

4

1 回答 1

0

我能想到你可能遇到的一些问题。

当您向 D2LUserContext 对象提供 API 路径时,您只需传入 API 路径,其中包含内部空格,而不是转义字符。因此,到一个名为的文件的正确路径test file name可能如下所示:

/d2l/api/le/1.0/locker/myLocker/firstFolderBelowRoot/test file name

要为此创建经过身份验证的 URL,您将调用

yourD2LUserContext.createAuthenticatedUri('/d2l/api/le/1.0/locker/myLocker/firstFolderBelowRoot/test file name', 'GET')

这将形成一个经过身份验证的 URL,您可以使用它来test file name从您的储物柜中获取该文件。要获取其包含的文件夹:

yourD2LUserContext.createAuthenticatedUri('/d2l/api/le/1.0/locker/myLocker/firstFolderBelowRoot/', 'GET')

请注意,当您要识别储物柜中的文件夹时,该path参数必须以斜杠结尾。(如果您正在尝试获取一个文件夹,并且您没有尾部斜杠,那么这可能是您的问题的根源。)

获得该 URL 后,您将需要使用某种 HTTP 库来实际进行调用。我们内部的 PHP 开发人员建议在 PHP 中使用 HttpRequest 而不是 cURL。最值得注意的是,您应该调用的 URL 应该在 URL 的路径组件中保留文件或文件夹名称中的空格。

当我使用 Python 客户端对 9.4.1 实例进行测试以从储物柜中获取/放置,或者使用用户上下文对象生成 URL,然后将这些 URL 输入浏览器时,一切似乎都很好。使用 Python 客户端对 10.0.0 测试实例进行测试似乎也有效。

于 2012-08-30T15:21:27.450 回答