2009-01-25 18 views
8

Gram z Google App Engine i Python i nie mogę wyświetlić plików statycznego katalogu. Poniżej znajduje się kod, którego obecnie używam.Jak wyświetlić listę plików w katalogu statycznym?

app.yaml

- url: /data 
    static_dir: data 

kod Pythona do listy plików

myFiles = [] 
for root, dirs, files in os.walk(os.path.join(os.path.dirname(__file__), 'data/')): 
    for name in files: 
     full_name = os.path.join(root, name) 
     myFiles.append('%s;%s\n' % (name, datetime.fromtimestamp(os.stat(full_name).st_mtime))) 

Kiedy uruchomić ten kod lokalnie na moim komputerze, wszystko jest w porządku. Mam swój skrypt Pythona w katalogu głównym katalogu i przechowuje pliki w katalogu danych. Jednakże, kiedy ładuję i uruchamiam ten sam kod w GAE, to nie działa. Wydaje mi się, że struktura katalogów mojej aplikacji nie jest dokładnie replikowana w Google App Engine. Gdzie są pliki statyczne?

Dzięki!

Odpowiedz

7

https://developers.google.com/appengine/docs/python/config/appconfig#Python_app_yaml_Static_file_handlers

Oni nie gdzie myślisz, że oni są GAE stawia statyczny do GoogleFS który jest odpowiednikiem CDN. Chodzi o to, że statyczna zawartość ma być dostarczana bezpośrednio do użytkowników, a nie działać jako magazyn plików, którymi można manipulować. Ponadto GAE ma limit plików 1K i byłoby trudno kontrolować tę regułę, gdybyś mógł manipulować statycznym magazynem plików.

+0

Link nie działa ...... – Jonny

0

Nie można uzyskać dostępu do plików przesłanych w sposób programowy jako pliki statyczne - nie są one instalowane na serwerze razem z aplikacją, ale są podawane bezpośrednio. Jeśli naprawdę potrzebujesz do nich dostępu, możesz usunąć obsługę plików statycznych i udostępnić je samemu.

Powiązane problemy