Google App Engine返回“错误:服务器错误”

时间:2016-12-20 20:51:17

标签: python google-app-engine google-cloud-platform packages

我的应用程序在本地运行,并在localhost:8080上顺利运行。当应用程序在Google服务器中执行时,似乎存在问题。

我很确定我丢失了一些软件包,我已经添加了cloudstorage并将软件包请求到我的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云端存储上写一个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())  

1 个答案:

答案 0 :(得分:0)

错误是存储桶目录,使用

获取存储桶名称
bucket_name = os.environ.get('BUCKET_NAME', app_identity.get_default_gc\
s_bucket_name())  

然后将currentFileName修改为正确的目录

currentFileName = "/" + bucket_name + "/" + self.domain + "_" + self.startDate +"_" \
+ self.endDate +'.csv'

修正了500错误:服务器错误