NoSuchKey при получении подписанного URL-адреса объекта cloudstorage с пробелом в имени

Ниже приведен код приложения, использующий app_identity.sign_blob () для запроса подписанного URL-адреса. Этот код отлично работает, когда в имени файла GCS нет места. В именах объектов допускается пробел. Для тестирования я использовал SDK.

Я видел много вопросов по этой проблеме, но я не мог создать решение

Это ошибка или?

def sign_url(bucket_object, expires_after_seconds=6, bucket=default_bucket): method = 'GET' gcs_filename = urllib.quote('/%s/%s' % (bucket, bucket_object)) content_md5, content_type = None, None # expiration : number of seconds since epoch expiration_dt = datetime.utcnow() + timedelta(seconds=expires_after_seconds) expiration = int(time.mktime(expiration_dt.timetuple())) # Generate the string to sign. signature_string = '\n'.join([ method, content_md5 or '', content_type or '', str(expiration), gcs_filename]) signature_bytes = app_identity.sign_blob(signature_string)[1] # Set the right query parameters. we use a gae service account for the id query_params = {'GoogleAccessId': google_access_id, 'Expires': str(expiration), 'Signature': base64.b64encode(signature_bytes)} # Return the built URL. result = '{endpoint}{resource}? {querystring}'.format(endpoint=GCS_API_ACCESS_ENDPOINT, resource=gcs_filename, querystring=urllib.urlencode(query_params)) return result 

Обновить. Ответ, когда я использую подписанный URL:

 <Error> <Code>NoSuchKey</Code> <Message>The specified key does not exist.</Message> </Error> 

One Solution collect form web for “NoSuchKey при получении подписанного URL-адреса объекта cloudstorage с пробелом в имени”

Проблема решена.

Я не знаю почему. Я ничего не изменил. Вы можете попробовать приложение GAE, используя приведенный ниже код и эту ссылку:

 https://voscausa-gae.appspot.com/download_signed?bucket_object=download/test signed1 .txt 

Код находится здесь: appengine-gcs-signed-url

Вы также можете использовать подписанный URL-адрес с политическим документом для прямой отправки в GCS.
Код: https://github.com/voscausa/appengine-gcs-upload

  • Как импортировать файлы в python с помощью sys.path.append?
  • В этой ситуации Python 3 не нуждается в __init__.py?
  • символ utf-8 в пути пользователя не позволяет импортировать модуль
  • Печать словаря в таблицу
  • ошибка приложения потока python для многих аргументов
  • Многопроцессорность Python: TypeError: ожидаемая строка или объект Unicode, обнаружен NoneType
  • Python psycopg2 курсоры
  • Преобразование строки Python DateTime в целые миллисекунды
  •  
    Interesting Posts for Van-Lav

    django-haystack + Whoosh SearchQuerySet (). all () always None

    Numpy читает сложные номера из текстового файла

    Компилировать отладочные библиотеки Python debug и pip

    Нет модуля с именем base_user – Django

    Как создать пакет приложений для Mac для скрипта Python через Python

    Как избавиться от ошибки максимальной глубины рекурсии при интерактивном построении?

    Как определить бинарные и текстовые файлы с помощью Python?

    python повторно разделяет строку перед символом

    Очередь приоритетов с двумя значениями приоритета

    Обнаруживать, если метод был украшен, прежде чем вызывать его

    Почему иногда подпроцесс Python не смог получить правильный код выхода после запуска процесса?

    Как передать имя пользователя и пароль в cassandra в python

    Как «strftime» настроить часовой пояс?

    Как сделать автоматически заполненное и автоматически увеличивающееся поле в django admin

    Вычисление среднего квадратического смещения с использованием python и FFT

    Python - лучший язык программирования в мире.