首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >* ConnectionError:(‘连接中止’,错误(13,‘权限被拒绝’))

* ConnectionError:(‘连接中止’,错误(13,‘权限被拒绝’))
EN

Stack Overflow用户
提问于 2018-03-17 17:24:47
回答 1查看 332关注 0票数 0

我正在使用dev_appserver.py测试我的应用程序。

我上传文件的函数类似于:

代码语言:javascript
运行
复制
def upload_file(file_stream, filename):
    """Upload a file to Google Cloud Storage."""

    client = google.cloud.storage.client.Client(project=_GOOGLE_CLOUD_PROJECT)
    bucket = client.get_bucket(_GOOGLE_STORAGE_BUCKET)  # Here it breaks!

    blob = bucket.blob(filename)
    blob.upload_from_string(file_stream)

    url = blob.public_url

    return url

bucket = client.get_bucket(_GOOGLE_STORAGE_BUCKET)行,我收到一条错误消息:

代码语言:javascript
运行
复制
*** ConnectionError: ('Connection aborted.', error(13, 'Permission denied'))

我通过执行以下操作进行身份验证:

代码语言:javascript
运行
复制
gcloud auth application-default login

我的app.yaml:

代码语言:javascript
运行
复制
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /static
  static_dir: static
  application_readable: true
- url: /.*
  script: main.app

libraries:
- name: ssl
  version: latest

你知道怎么解决吗?

EN

回答 1

Stack Overflow用户

发布于 2018-03-21 18:42:53

您似乎没有设置正确的权限,无法从您用于运行应用程序的帐户访问您的云存储存储桶。

存储桶的权限是通过使用Access Control Lists (ACL)来设置的,ACL定义了哪些帐户可以访问存储桶以及访问的类型(读、写等)。他们做到了。

下面是如何为特定账号设置权限,使其可以访问存储桶的示例:

代码语言:javascript
运行
复制
gsutil acl ch -u [USER_EMAIL]:[PERMISSION] gs://[BUCKET_NAME]

设置ACL还有其他可用选项,如使用控制台或通过代码添加权限。您可以在here中找到这些选项。

更新

在与处理这种情况的团队做了一些研究和咨询后,我可以确认到目前为止,the use of SSL with sockets is not supported on dev_appserver。由于您正在使用的客户端库正在使用HTTPS进行连接,因此如果没有此支持,使用dev_appserver将无法工作。

作为替代方案,您可以考虑使用API client library for Python。在这里你可以找到一个关于如何使用这个库从你的应用程序连接到云存储存储桶的example

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49334438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档