2014-06-29 12 views
6

obecna procedura służyć obraz jest następujący:GAE nadal obsługujących obraz z Google Cloud Storage po wywołaniu delete_serving_url i usuwanie plików

  1. Store obraz na google chmurze
  2. Get blob_key: google.appengine.ext.blobstore.create_gs_key(filename)
  3. Zobacz URL : google.appengine.api.images.get_serving_url(blob_key,size=250,secure_url=True)

Aby usunąć obraz, po pobraniu z blob_key:

  1. Usuń serwującą URL: google.appengine.api.images.delete_serving_url(blob_key)
  2. Usuń google plik w chmurze: 'cloudstorage.delete (filename)'

Issue

Problem jest, że adres URL jest nadal wyświetla się przez nieokreślony czas, nawet jeśli obraz bazowy nie istnieje już w magazynie Google Cloud Cloud. W większości przypadków adres URL zwraca 404 w ciągu 24 godzin, ale widzi również 1 obrazek nadal działający (~ 2wks).

Jakie są oczekiwania dotyczące terminowości połączenia delete_serving_url? Jakieś alternatywy, aby szybciej usunąć adres URL?

+0

Czy ustawiłeś nagłówek Cache-Control na obiekcie? – jterrace

+0

Używam funkcji biblioteki klienta GCS (gcs.open) do tworzenia obiektu [link] (https://developers.google.com/appengine/docs/python/googlecloudstorageclient/functions#open), ale nie można określić Cache-Control. Czy to obsługuje? – legrisdev

+0

Błąd na moim końcu, używałem opcji jako 'x-goog-cache-control', podczas gdy potrzebowałem' kontroli cache-control'. Niemniej jednak, podczas tworzenia pliku przy użyciu 'cloudstorage.open (filename, 'w', content_type = mimetype, options = {'cache-control': 'no-cache'})', a następnie przechodząc przez procedurę opisaną powyżej URL nadal działa po 1 godzinie. Myśli? – legrisdev

Odpowiedz

0

Mogę odpowiedzieć na jedno z dwóch pytań. Niestety, jest to mniej pomocne. :/

Jakie są oczekiwania dotyczące terminowości wywołania delete_serving_url?

Przeglądając dokumentację Java dla getServingUrl, wyraźnie zaznaczono, że wymaga to 24 godzin, jak zauważyliście. Nie jestem pewien, dlaczego dokumentacja Pythona pozostawia tę kwestię.

Jeśli chcesz przestać wyświetlać adres URL, usuń klucz podstawowy. Może to potrwać do 24 godzin.

Dokumentacja nie wyjaśnia, dlaczego jedno z Twoich zdjęć nadal będzie wyświetlane po 2 tygodniach.

Warto również zauważyć, że nie odwołują się one do deleteServingUrl w ramach procesu zatrzymywania wyświetlania kropli. Sugeruje to, że krok (1) w twoim procesie "usunięcia obrazu" jest niepotrzebny.

Powiązane problemy