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
- Store obraz na google chmurze
- Get blob_key:
google.appengine.ext.blobstore.create_gs_key(filename)
- Zobacz URL :
google.appengine.api.images.get_serving_url(blob_key,size=250,secure_url=True)
Aby usunąć obraz, po pobraniu z blob_key:
- Usuń serwującą URL:
google.appengine.api.images.delete_serving_url(blob_key)
- 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?
Czy ustawiłeś nagłówek Cache-Control na obiekcie? – jterrace
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
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