没有 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).
有什么帮助和建议吗?谢谢!
应该是权限问题。
- 尝试创建一个服务帐户。看起来像这样“my-storage-bucket@yourprojectname.iam.gserviceaccount.com”
- 转到 IAM 和管理 -> 权限
- 为该服务帐户分配“存储对象管理员”角色。
- 再试一次你的代码。如果有效,请根据您的需要将您的权限缩小到以下列表。
5。请记住为该特定服务帐户下载 json 密钥文件。
我写了一个 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).
有什么帮助和建议吗?谢谢!
应该是权限问题。
- 尝试创建一个服务帐户。看起来像这样“my-storage-bucket@yourprojectname.iam.gserviceaccount.com”
- 转到 IAM 和管理 -> 权限
- 为该服务帐户分配“存储对象管理员”角色。
- 再试一次你的代码。如果有效,请根据您的需要将您的权限缩小到以下列表。
5。请记住为该特定服务帐户下载 json 密钥文件。