问题标签 [gsutil]
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 - GAE for Python 上的自动并行复合上传
我想使用 gsutil 的自动并行复合上传将文件从 Google App Engine 上传到云存储。我想让你告诉我有两个。以上内容是否可行。如果可能,以下来源中的内容不足。
python - 使用 Python 列出 Google Cloud Storage 存储分区
我正在关注本教程:https ://developers.google.com/storage/docs/gspythonlibrary并在尝试列出我的存储桶时遇到了几个错误。
我已经下载了 gsutil 并将其添加到我的 PYTHONPATH 中,如下所示:
/home/nicolasalvo/tools/gsutil/third_party/boto:/home/nicolasalvo/tools/gsutil
我也执行过:
我试图运行的代码是:
我遇到的第一个错误是:
我已经修复了手动更改:
成为
现在我面临的错误是:
我试图在使用它之前声明全局对象,但它没有帮助。
此外,我希望我应该能够使用 Google 提供的云存储库,而无需手动修复。
我正在运行 Python 2.7.3
任何帮助是极大的赞赏
python - 无法导入 gsutil
我觉得我设置正确。我按照这些说明进行操作。
并从 tar 文件安装。
我的主目录现在有一个文件夹“gsutil”。我通过配置为 oauth2 设置我的应用程序,并且能够从命令行调用 gsutil。为了使用 gsutil 和 Google App Engine,我在我的主目录中的 .bashrc 文件中添加了以下几行并获取了它:
但是,当我尝试通过以下任一方式导入我的 python 脚本时:
或类似的东西(直接来自文档)。
我收到如下错误:
我在某个地方错过了一步吗?谢谢
编辑:
这是 (','.join(sys.path)) 的输出:
, /usr/local/lib/python2.7/dist-packages/setuptools-1.4.1-py2.7.egg, /usr/local/lib/python2.7/dist-packages/pip-1.4.1-py2 .7.egg,/usr/local/lib/python2.7/dist-packages/gsutil-3.40-py2.7.egg,/home/[myname],/home/[myname]/gsutil/third_party/boto, /home/[我的名字]/gsutil, /usr/lib/python2.7, /usr/lib/python2.7/plat-linux2, /usr/lib/python2.7/lib-tk, /usr/lib/python2 .7/lib-old、/usr/lib/python2.7/lib-dynload、/usr/local/lib/python2.7/dist-packages、/usr/lib/python2.7/dist-packages、/usr /lib/python2.7/dist-packages/PIL、/usr/lib/python2.7/dist-packages/gst-0.10、/usr/lib/python2.7/dist-packages/gtk-2.0、/usr/ lib/python2.7/dist-packages/ubuntu-sso-client、/usr/lib/python2.7/dist-packages/ubuntuone-client、/usr/lib/python2.7/dist-packages/ubuntuone-control-面板,/usr/lib/python2.7/dist-packages/ubuntuone-couch,/usr/lib/python2。7/dist-packages/ubuntuone-installer,/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol
编辑2:
我可以从命令行导入模块,但不能从我的 Google App Engine 应用程序中导入。这是使用 python -v 输出的第一行
导入 gsutil
但是当我尝试从应用程序导入它时,我收到以下消息:
python - 读取 appengine backup_info 文件给出 EOFError
我正在尝试检查我的 appengine 备份文件,以确定何时发生数据损坏。我使用 gsutil 找到并下载文件:
然后我创建了一个小型 python 程序,尝试读取文件并使用 appengine 库对其进行解析。
的代码parse_backup_info_file
是从
backup_handler.py复制的
当我运行程序时,我得到以下输出:
我尝试了六个不同的 backup_info 文件,它们都显示相同的错误(具有不同的数字。)
我注意到它们都有相同的预期长度: 我在制作时正在查看同一模型的不同版本那个观察,当我查看其他模块的备份文件时,这不是真的。
我的方法有什么明显的问题吗?
我猜另一个选项是appengine 备份实用程序没有创建有效的备份文件。您可以提出的任何其他建议都将非常受欢迎。提前致谢
python - 在谷歌云存储中使用带有签名 URL 的版本控制
在对象上指定“代”(版本号)时,我在为 Google Cloud Storage (GCS) 签署 GET 请求时遇到困难。在没有生成的情况下对 URL 进行签名就像一个魅力,并且 GET 请求工作正常。但是,当我在路径前添加#generation 时,GCS 服务器在尝试获取签名 URL 时总是返回“拒绝访问”。
例如,签署此 URL 路径可以正常工作:
签署此 URL 路径使我拒绝访问:
https://storage.googleapis.com/BUCKET/OBJECT#1360887697105000
请注意,为了简洁和隐私,我省略了带有 Signature、Expires、GoogleAccessId 参数的实际签名 URL。另请注意,我还使用 gsutil 验证了存储桶、对象和生成是正确的。
GCS 是否允许通过“世代”编号访问特定对象版本的签名 URL?访问特定版本时,URL 签名过程是否不同?
upload - GSUTIL 不会重新上传当天早些时候已经上传的文件
我正在使用 Python 2.7.6 从 Windows Server 2008 R2 上的 Windows CMD 脚本运行 GSUTIL v3.42。要上传的文件到达“传出”目录,并由 GSUTIL 并行上传到“传入”存储桶。该脚本在上传完成后请求“传入”存储桶的列表,然后将列出的文件与其尝试上传的文件进行比较,以检测任何上传失败。另一个单独的脚本随后将文件从“传入”存储桶移动到“已处理”存储桶。
如果我尝试再次上传相同的文件(相同的名称/大小/内容/日期等),它不会上传,尽管我没有收到任何错误,并且我的日志记录中没有任何内容表明失败。我没有使用“no clobber”选项,所以我希望 gsutil 只上传文件。
在下面的场景中,假设文件已成功上传并在当天已移动到“已处理”存储桶中。如果时间很重要,第二次上传将在第一次上传的半小时内尝试。
- 文件 A 到达“传出”目录。
- 我得到“传出”的文件列表并将其写入 dirListing.txt
我使用执行 GSUTIL 上传
类型 dirListing.txt | python gsutil -m cp -I -L myGsutilLogFile.txt gs://myIncomingBucket
然后我执行 GSUTIL 列表
python gsutil ls -l -h gs://myIncomingBucket > bucketListing.txt
文件匹配 dirListing.txt 和 bucketListing.txt 以检测不匹配并因此上传失败。
在第二次运行中,文件 A 在步骤 3 中没有被上传,因此在步骤 4 中没有返回,导致在步骤 5 中不匹配。[我检查了所有相关文件的内容,它肯定在 dirListing .txt 而不是 bucketListing.txt]
我需要重新处理文件的能力,以防将文件从“传入”存储桶移动到“已处理”存储桶的单独脚本由于某种原因失败或没有做它应该做的事情。我必须并行上传,因为每次运行通常有数百个文件。
我在上面描述的是 GSUTIL 的预期行为吗?(我在文档中没有看到任何暗示这一点的内容)如果是这样,有没有办法强制 GSUTIL 重新尝试上传?还是我遗漏了一些明显的东西?如果有必要/有用,我有来自 GSUTIL 的调试输出。
cloud - google cloud storage/gsutil ls 命令结果不一致
当我在计算引擎中使用 gsutil mv 命令将文件从存储桶中的一个文件夹移动到同一存储桶中的另一个文件夹时,我得到了奇怪的结果。有时它显示文件已移动,但有时文件未显示/移动。它发生在 gsutil ls 命令和存储浏览器中。我不知道 GCS 中是否存在任何同步/延迟问题。
用例:我正在计算引擎中的 linux 脚本中编写非常简单的 ETL 过程,以将文件从 GCS 加载到 bigquery 表中,并且必须将加载后的文件移动到 GCS 中的存档位置。
在我发出 gsutil ls 或在存储浏览器中执行脚本后,有时(继续执行 gsutil ls 命令或刷新浏览器)文件被移动,有时它不显示相同
对此问题的任何帮助都将受到高度赞赏。
问候, 斯里尼瓦斯
python - socket.gaierror:[Errno 11004] getaddrinfo 失败
我正在尝试在我的 Windows 7 机器上安装 gsutil。我正在按照此处的说明进行操作-> https://developers.google.com/storage/docs/gsutil_install
但是当我运行第四步(python gsutil)时出现以下错误:
socket.gaierror:[Errno 11004] getaddrinfo 失败
也许一些代理问题?
提前致谢。
google-cloud-storage - 谷歌的多对象通知消息
我正在使用 gsutil cp 命令从美国物理位置将几个 < 10MB 大小的文件分别复制到位于欧盟位置的存储桶中。我收到了同一文件的多个对象通知消息。这些多对象通知具有相同的大小,md5sum,但 x-goof-message-number 不同。并非所有文件或任何特定文件都有多个对象通知,但这对于任何文件都是随机发生的。
为了消除 gsutil 可恢复传输作为罪魁祸首的可能性,我在 .boto 文件中将 resumable_threshold 设置为 15MB。
让我知道可能导致多对象通知的原因。同一对象的多个对象通知对于我的应用程序来说是错误事件。
这很奇怪,因为在对位于美国位置的存储桶执行相同操作时,看不到这一点。
java - 如何使用“gsUtil”获取应用的财务报告?
背景
当您发布应用程序时,您可以通过此网站访问财务报告,该网站可将您引导至此网站,从而导致:
https://play.google.com/apps/publish/?dev_acc=SOME_NUMBERS#ReportsPlace
其中“SOME_NUMBERS”可能是您帐户的唯一 ID 或其他东西。
在底部,它说:
财务报告也可通过 Google Cloud Storage 和 gsutil 工具以编程方式访问。您的报告存储在此私有存储桶中:
gs://pubsite_prod_rev_SOME_NUMBERS
(关于 SOME_NUMBERS 的注释与之前相同)
问题
在安装了 Python 需求(从这里)和 gsutil(从这里)之后,我不知道如何真正使用他们编写的内容。
不仅如此,对于我尝试在那里运行的任何命令,我都会得到:
我在 stackOverflow 上发现了一些关于这个错误的帖子,但由于我不了解 python,我发现很难理解如何修复它。
问题
您如何真正使用 gsUtil?
有可能解决这个问题吗?
是否可以通过其他方式访问财务数据?是否有 Java 替代方案?甚至可能是一个包含所有可用命令的 SDK?