如何从Python函数登录Google Cloud Storage?

2023-12-25

我是谷歌云存储的新手,我尝试设置一个每天下载一次 blob 的功能。 目前我正在 Jupyter Notebook 中工作,但最终代码将在 Azure Function 中运行。我正在努力设置将我连接到存储桶的客户端。我有一个服务帐户凭证 JSON,它使我能够连接到 google。

我在本地找到了解决方案:

from google.cloud import storage

client = storage.Client.from_service_account_json('<PATH_TO_SERVICE_ACCOUNT_JSON>')

问题是我没有将 JSON 存储在云中的路径,但我将其存储在密钥保管库中。 我想出了以下解决方案:

from google.cloud import storage
import json
from google.oauth2 import service_account

string_key = get_key_from_key_vault()
service_account_info = json.loads(string_key)
google_credentials = service_account.Credentials.from_service_account_info(
    service_account_info
)
scoped_credentials = google_credentials.with_scopes(
    ['https://www.googleapis.com/auth/cloud-platform.read-only'])
print(type(scoped_credentials))
client = storage.Client(credentials = scoped_credentials)

我不完全确定我是否需要scoped_credentials = ...部分,但我只有存储桶的读取权限。 (如果我跳过该部分,错误保持不变)

当我寻求这个解决方案时,我收到以下错误:

DefaultCredentialsError: Could not automatically determine credentials. Please set 
GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. For
 more information, please see https://cloud.google.com/docs/authentication/getting-started

我不知道我做错了什么,因为我认为我已经明确设置了凭据。

Best P


你可以设置环境变量GOOGLE_APPLICATION_CREDENTIALS https://cloud.google.com/docs/authentication/getting-started#setting_the_environment_variable使用 json 文件的路径,并通过启动不带参数的存储客户端来验证您的函数。

client = storage.Client()

*默认情况下,存储客户端使用环境变量上的文件路径GOOGLE_APPLICATION_CREDENTIALS

这是使用 JSON 凭证的最简单方法,并且与大多数 Google Cloud python 库兼容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从Python函数登录Google Cloud Storage? 的相关文章

  • 在哪里存储 Java 的 .properties 文件?

    The Java教程 http download oracle com javase tutorial essential environment properties htmlon using Properties 讨论如何使用 Prop
  • 在 GWT 中,在任何主机页标记上添加事件处理程序

    我想为任何标签添加 MouseOver 事件处理程序 举个例子 我想为旧版 HTML 页面中的每个锚点页面添加事件处理程序 继GWT指南 http code google com webtoolkit doc 1 6 DevGuideUse
  • 没有 OAuth 的 Spring Security JWT

    最近我开始学习如何使用oauth 2 0 jwt配置spring boot 我有一个问题 是否可以使用spring boot security jwt避免oauth 2 0 是的 可以使用JWT无需使用标准化的功能OAuth 2 0 flo
  • 迭代 pandas 数据框的最快方法?

    如何运行数据框并仅返回满足特定条件的行 必须在之前的行和列上测试此条件 例如 1 2 3 4 1 1 1999 4 2 4 5 1 2 1999 5 2 3 3 1 3 1999 5 2 3 8 1 4 1999 6 4 2 6 1 5 1
  • 如何为 Windows toast 注册协议?

    如何注册 Windows toast 协议 样本中来自https blogs msdn microsoft com tiles and toasts 2015 07 02 adaptive and interactive toast not
  • 使用 crypt() 加密

    我目前正在做一个非常安全的登录系统 但我是 crypt 函数的新手 需要一些快速帮助 我在注册过程中使用 crypt 加密密码字符串并将其保存到数据库中 但是 我如何在登录过程中解密密钥 或者我应该怎么做 或者是否可以对提交的密码字符串进行
  • 带重定向标准流的 C# + telnet 进程立即退出

    我正在尝试用 C 做一个 脚本化 telnet 项目 有点类似于Tcl期望 http expect nist gov 我需要为其启动 telnet 进程并重定向 和处理 其 stdin stdout 流 问题是 生成的 telnet 进程在
  • 您可以使用关键字参数而不提供默认值吗?

    我习惯于在 Python 中使用这样的函数 方法定义 def my function arg1 None arg2 default do stuff here 如果我不供应arg1 or arg2 那么默认值None or default
  • Android ScrollView fillViewport 不工作

    我有一个简单的布局 名称位于顶部 按钮位于屏幕底部 或者超出该按钮 以防我添加更多项目 所以我使用带有 LinearLayout 的 ScrollView 如下所示
  • 在 Android 中使用 iText 将图像添加到特定位置

    我想使用 Android 中的 iText 将图像添加到 PDF 文件中的特定位置 这是一个可填写的表单 我添加了作为图像占位符的文本框 我想要做的就是像这样获取该文本框和图像 public class FormFill public st
  • Googletest:如何异步运行测试?

    考虑到一个包含数千个测试的大型项目 其中一些测试需要几分钟才能完成 如果按顺序执行 整套测试需要一个多小时才能完成 通过并行执行测试可以减少测试时间 据我所知 没有办法直接从 googletest mock 做到这一点 就像 async选项
  • NGinx $proxy_add_x_forwarded_for 和 real_ip_header

    我在 NGinx 下有一个 web 应用程序和另一个前端负载均衡器 如下所示 x x x x IP 地址 客户端 a a a a gt LB b b b b gt NGX c c c c gt WEBAPP d d d d 这是我的 NGi
  • Typescript 函数接口重载

    我有以下代码 interface MySecondInterface a type A interface MyInterface val1 string val2 string MySecondInterface a
  • 实例化 Microsoft.Office.Interop.Excel.Application 对象时出现错误:800700c1

    实例化 Microsoft Office Interop Excel Application 以从 winforms 应用程序生成 Excel 时 出现以下错误 这之前是有效的 但突然间它停止工作了 尽管代码和 Excel 版本没有变化 我
  • 带显示块的SPAN

    和默认有什么区别 div 元素和默认值 span 元素与display block HTML 元素的有效性和语义存在差异 否则它们是相同的 div and span两者都被定义为通用容器 在 HTML 方面没有更深层次的含义 一个默认为块显
  • 使用 Crypto++ 获取 ECDSA 签名

    我必须使用 Crypto 在变量中获取 ECDSA 签名 我在启动 SignMessage 后尝试获取它 但签名为空 我怎样才能得到它 你看过 Crypto wiki 吗 上面有很多东西椭圆曲线数字签名算法 http www cryptop
  • 自定义 Visual Studio 2008 中的位置栏

    有人成功定制了 VS 2008 的 Places Bar 吗 我从 VS 2005 进行的自定义设置并没有转移到 2008 显然 并且无论我如何处理注册表 我都无法使我的自定义位置出现在 打开 对话框中 我已经阅读并应用了相关的MS KB文
  • 是否可以在 C# 中强制接口实现为虚拟?

    我今天遇到了一个问题 试图重写尚未声明为虚拟的接口方法的实现 在这种情况下 我无法更改接口或基本实现 而必须尝试其他方法 但我想知道是否有一种方法可以强制类使用虚拟方法实现接口 Example interface IBuilder
  • 错误:无效使用不完整类型“类 Move”/未定义对 Move::NONE 的引用

    拜托 我不知道为什么这个简单的代码被拒绝 它给了我 2 个编译错误 请帮帮我 I use 代码 块 20 03 我的编译器是GNU GCC 移动 hpp class Move public Move Move int int public
  • Android 和 Java 中绘制椭圆的区别

    在Java中由于某种原因Ellipse2D Double使用参数 height width x y 当我创建一个RectF在Android中参数是 left top right bottom 所以我对适应差异有点困惑 如果在 Java 中创

随机推荐

  • Laravel“有时”验证器因嵌套数组而失败

    我正在使用 LaravelValidator类对数组进行一些基本验证 我的数组 employee name name employee address address employee department department name
  • 在 macOS 上安装没有完整 Postgres 的 psql 的正确方法?

    官方网站 https www postgresql org download macosx这种情况就不要提了 但很多用户只需要psql没有本地数据库 我在AWS上有它 酿造没有psql 您还可以使用 homebrew 来安装 libpq b
  • Swift 将音频和视频文件合并为一个视频

    我用 Swift 编写了一个程序 我想将视频与音频文件合并 但出现此错误 失败错误域 AVFoundationErrorDomain代码 11838 操作已停止 UserInfo 0x17da4230 NSLocalizedDescript
  • 多线程观察者模式[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个问题 主题每次都会在不同的线程中更新 因此 每当主题更新时 它都会相应地用新信息更新观察者 然而 如果观察者列表很长 则需要一
  • 将 jQuery UI 日期选择器分成 3 个单独的文本框

    有谁知道将 jquery ui datepicker 的输入分成 3 个单独的框的优雅方法 默认情况下 它的输入只是一个文本框 DD MM YYYY 我必须将输入分成 3 个单独的日 月和年 DD MM and YYYY
  • 描述 .desc 文件的(元).proto 文件在哪里?

    描述 desc 文件的 元 proto 文件在哪里 我使用以下命令创建 desc 文件 protoc descriptor set out foo desc include imports foo proto 我认为 desc 文件采用 p
  • iPad 版 Safari 不报告 Javascript 错误的行号

    我正在使用 iPad 2 和 IOs 5 来开发 Web 应用程序 我已启用开发者控制台来获取日志 但是当发生 javascript 错误时 它不包含相应的行号 由于 Web 应用程序处理触摸和手势事件 因此我无法在桌面版本的浏览器上测试它
  • 安装 Active Admin 并收到 ArgumentError

    我第一次尝试在 Rails 4 中使用 ActiveAdmin 安装所有依赖的 gem 后 我尝试运行安装程序 即 rails generate active admin install 这样做会给我带来以下错误 in add route
  • OpenCV C++ 在 Macbook M1 芯片中给出架构 arm64 错误

    我按照本教程在 Macbook M1 中构建了 OpenCV 4 5 2 https sayak dev install opencv m1 https sayak dev install opencv m1 它在 Python 中运行良好
  • 为什么我收到错误的 requestCode?

    我有一个活动 我在其中使用startActivityForResult intent 634 如果我从活动中使用它 则 requestCode 在onActivityResult 可以 但如果我使用startActivityForResul
  • 制作 ListAdapter 可回收的可调整大小的视图

    我正在努力创建一个具有展开和压缩状态的自定义视图 在压缩状态下 它将仅显示一个标签和一个图标 在展开状态下 它将在其下方显示一条消息 这是迄今为止它的工作原理的屏幕截图 The View一旦测量 它本身就会保留压缩状态和扩展状态的大小值 因
  • 创建“简单”密码验证字段

    我正在尝试为网页创建密码字段 到目前为止我有
  • 如何获得mysql存储过程递归的深度?

    我有一个递归mysql 存储过程我为此设置了max sp recursion depth 10 Now 不设置局部变量 我想知道单次执行期间递归的级别是多少 我认为肯定有一个会话变量来存储深度 否则你怎么知道当你达到最大级别时 但我找不到它
  • sql事务不回滚

    在transact sql中 在 开始事务 和 提交事务 之间封装不同操作的目的是什么 我注意到 当函数中间抛出异常时 它不会回滚事务 如果发生错误 如何回滚事务 使用 try 和 catch 进行正确错误处理的最佳方法 然后根据错误在 c
  • Laravel:方法[显示]不存在

    当尝试访问此 URL users login 时 我收到该错误 这是我的代码 查看 users login blade php Sign in HTML ul errors gt all
  • 如何在 if 条件下禁用按钮

    如果 prod quantity 0 如何禁用按钮 这是当 prod qty 0 时我需要禁用的按钮
  • C#中实时数据值显示

    简单的 C 问题 我试图设计一个简单的 C DLL 它使用 用于从数码相机流式传输图像的第三方库 这里是真正的 C 程序员初学者 所以请耐心听我回答这个问题 我在代码中添加了一个计数器 以便每当检索图像时 计数器增加 我构建了一个毫无意义且
  • 无法在 Arch 中安装 virtualbox

    我尝试使用 pacman 在 Arch 4 7 0 1 上安装 Virtualbox 一切似乎都很顺利 直到我尝试运行它 我收到以下消息 警告 未加载 vboxdrv 内核模块 要么就是没有模块 适用于当前内核 4 7 0 1 ARCH 或
  • Double 的 BigDecimal 值不正确?

    我正在尝试从字符串创建 BigDecimal 别问我为什么 我就是需要 这是我的代码 Double theDouble new Double 3 System out println The Double theDouble toStrin
  • 如何从Python函数登录Google Cloud Storage?

    我是谷歌云存储的新手 我尝试设置一个每天下载一次 blob 的功能 目前我正在 Jupyter Notebook 中工作 但最终代码将在 Azure Function 中运行 我正在努力设置将我连接到存储桶的客户端 我有一个服务帐户凭证 J