0

Meine App funktioniert lokal und läuft reibungslos bei localhost: 8080. Es scheint ein Problem zu bestehen, wenn die App auf den Google-Servern ausgeführt wird.Google App Engine gibt 'Fehler: Serverfehler' zurück

Ich bin ziemlich sicher, dass ich einige Pakete vermisse, ich habe bereits die Cloudstorage und Anfragen Pakete in meinem lib-Ordner hinzugefügt.

Ich möchte nur wissen, welche muss ich zum Ordner lib herunterladen und hinzufügen, hier ist was ich in meinem Python App bin mit:

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 

EDIT:

I Ich denke, ich liege falsch und der Paketteil hat nichts mit dem Fehler zu tun.

fand ich in dem Stack-Trace Probe diese wenigen Zeilen:

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. 

Ich bin eigentlich in einer CSV-Datei auf Google Cloud Storage zu schreiben, hier ist meine paar Zeilen Code, die wahrscheinlich wichtig sind

 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)    

Habe ich einen Fehler am Dateipfad im Bucket gemacht? Ich bin ein wenig verwirrt, wie man überprüft, ob es die Datei auch korrekt erstellt.

EDIT 2:

Muss ich irgendwo diese Codezeile benutzen?

bucket_name = os.environ.get('BUCKET_NAME', app_identity.get_default_gc\ 
s_bucket_name()) 
+0

Was sehen Sie in den Protokollen Ihrer App? –

+0

@DanCornilescu Ich habe einen EDIT gemacht, ich glaube nicht, dass es ein Paketproblem ist Ich habe storage.objects.create error, muss ich meinen tatsächlichen Bucket-Namen anstelle von/Bucket/setzen? – Seraf

+0

Ich habe es endlich zur Arbeit gebracht. Der Fehler war/bucket/directory, was keinen Sinn macht. – Seraf

Antwort

0

Der Fehler war der Eimer-Verzeichnis, den Namen mit

bucket_name = os.environ.get('BUCKET_NAME', app_identity.get_default_gc\ 
s_bucket_name()) 

Dann Modifizieren der Current in das richtige Verzeichnis Eimer bekommen, die

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

wurde behoben 500 Fehler ist: Server-Fehler