没有 storage.buckets.list 访问 Google 云项目的权限?

Does not have storage.buckets.list access to the Google Cloud project?

我写了一个 Ruby 脚本,可以将音频文件上传到 Google 云存储。

def upload_to_Google_cloud(audio_file)

    project_id = "<project_id>"
    key_file = "<json_file>"

    storage = Google::Cloud::Storage.new project: project_id, keyfile: key_file

    bucket_name = storage.buckets.first.name 
    puts bucket_name
      
    bucket = storage.bucket bucket_name

    local_file_path = "/path/#{audio_file}"

    file = bucket.create_file local_file_path, "#{audio_file}.flac"
    return "Uploaded #{file.name}"
end

虽然,每次我 运行 命令 -> ruby video_dictation.rb,它 returns 我一个错误是 xxxxxxxxx 没有 storage.buckets.list 访问 Google 云项目。 (Google::Cloud::PermissionDeniedError).

有什么帮助和建议吗?谢谢!

应该是权限问题。

  1. 尝试创建一个服务帐户。看起来像这样“my-storage-bucket@yourprojectname.iam.gserviceaccount.com”
  2. 转到 IAM 和管理 -> 权限
  3. 为该服务帐户分配“存储对象管理员”角色。
  4. 再试一次你的代码。如果有效,请根据您的需要将您的权限缩小到以下列表。

5。请记住为该特定服务帐户下载 json 密钥文件。