【发布时间】:2016-12-20 20:51:16
【问题描述】:
我的应用程序在本地运行,并且在 localhost:8080 运行顺畅。应用在 Google 服务器中执行时似乎存在问题。
我很确定我缺少一些包,我已经将 cloudstorage 和 requests 包添加到我的 lib 文件夹中。
我只想知道我必须下载哪些并将其添加到 lib 文件夹中,这是我在 Python 应用程序中使用的:
import os, sys, requests, csv, urllib2, webapp2
import xml.etree.ElementTree as ET
from datetime import date, timedelta, datetime
from google.appengine.api import app_identity
import cloudstorage as gcs
编辑:
我认为我错了,包部分与错误无关。
我在 Stack Trace Sample 中找到了这几行:
Body: "<?xml version='1.0' encoding='UTF-8'?>
<Error>
<Code>AccessDenied</Code>
<Message>Access denied.</Message>
<Details>
Caller does not have storage.objects.create access to bucket bucket.
</Details>
</Error>". Extra info: None.
我实际上是在 Google Cloud Storage 上写一个 csv 文件,这是我可能很重要的几行代码
currentFileName = "/bucket/" + self.domain + "_" + self.startDate +"_" \
+ self.endDate +'.csv'
with gcs.open(currentFileName, 'w') as csvfile:
fieldnames = ['ID', 'URL', 'Comments', 'Em...
...
writer = csv.DictWriter(csvfile,fieldnames = fieldnames)
我在 Bucket 中的文件路径上做错了吗?我对如何检查它是否也正确创建文件有点困惑。
编辑 2:
我需要在某处使用这行代码吗?
bucket_name = os.environ.get('BUCKET_NAME', app_identity.get_default_gc\
s_bucket_name())
【问题讨论】:
-
您在应用程序的日志中看到了什么?
-
@DanCornilescu 我进行了编辑,我不认为这是包问题我收到 storage.objects.create 错误,我是否必须输入我的实际存储桶名称而不是 /Bucket/ ?
-
我终于让它工作了。错误是 /bucket/ 没有意义的目录。
标签: python google-app-engine google-cloud-platform packages