问题标签 [libcloud]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 Apache Libcloud 上传到 GCS 时,对象元数据键是小写的
我正在使用 Apache Libcloud 将文件与对象元数据一起上传到 Google Cloud Storage 存储桶。
在此过程中,我的元数据字典中的键被小写。我不确定这是由于 Cloud Storage 还是发生在 Libcloud 中。
可以按照Libcloud 文档中的示例重现该问题:
哪里camelCase
变成了camelcase
。
我不认为 GCS 不允许对象元数据使用驼峰式,因为在这个意义上可以手动编辑元数据:
我浏览了 Libcloud 的源代码,但没有看到任何明确的小写字母。任何关于如何使用 libcloud 上传驼峰元数据的指示都非常受欢迎。
http-headers - Google Storage HEAD 响应缺少内容长度
我正在使用一个库(Apache Libcloud)向谷歌存储发出请求。在库内部,向在 google 存储中查询的 URL 发出 HEAD 请求。你可以在这里找到它的代码,搜索def get_object
。重要的线是
根据HEAD 响应对象的 Google 文档,content-length
字段应该是响应的一部分:
但是,某些文件(但不是所有文件)缺少它。在这两种情况下我都收到了一个x-goog-stored-content-length
条目,但图书馆需要content-length
.
标content-length
头在调用链的下游使用了一点def _headers_to_object
,由于缺少标头,我只是得到一个 KeyError :
问题是:当我上传文件以导致谷歌存储不发送该标题时,我可能对文件做了什么?或者这是谷歌存储中的一个错误(我怀疑)?
更多信息:
- 内容类型是
application/json
- 这个文件是 gzip 编码的。
- 它适用于其他 gzip 编码文件
- 我正在使用 Apache Libcloud API 3.3.0
- 我认为这不是 libcloud 中的错误,因为 HEAD 的文档指定了
content-length
标头,但是如果我覆盖_headers_to_object
使用x-goog-stored-content-length
. - 我无法使用我目前可以公开以演示的文件来重现此内容
python - Libcloud Storage - 如何指定请求超时?
我使用Libcloud 3.3.1 python 库从 Openstack swift 提供程序下载对象。
使用 requests 包时,可以指定连接和读取超时,以避免在检索文件时卡住。
是否可以在 Libcloud 包中定义此类超时?我知道我可以在连接参数中设置一个超时,但这似乎并没有达到我想要的效果(这是一个重试超时)。
我也一直在考虑使用信号包和这个回复,但这又不是我想要的,我想避免做这样的事情。
libcloud - 有没有办法在 libcloud 中非递归地列出存储桶中的所有对象
我有一个可能指向 s3 或任何其他存储服务的基本容器 - 我正在尝试列出某个文件夹中的对象 - 但我找不到非递归的方法 - 我能做的就是将前缀和 ex_prefix (已弃用)传递给它,但不传递后缀/分隔符/深度 - 它总是会列出所有子对象的对象。
有没有办法给它传递一个后缀/分隔符/深度?
python - Apache-libcloud 为 Azure Blob 存储引发 403
我有一个 celery 任务,它使用 apache libcloud 将数据从一个 azure 容器复制到另一个容器。
任务工作正常,但一段时间后我收到 403 错误。(例如任务复制 50 个文件,然后突然引发 403)
可能是什么问题呢?