Подписанный URL-адрес хранилища Google не работает, когда я добавляю response_disposition

Большое спасибо всем, кто может помочь мне решить эту проблему..

У меня есть функция создания подписанного URL-адреса следующим образом

def get_signed_url(name, content_type):
    storage_client = storage.Client.from_service_account_json("credentials.json")
    bucket = storage_client.bucket('my.bucket.com')
    blob = bucket.blob(name)
    url = blob.generate_signed_url(
        version="v4",
        expiration=datetime.timedelta(minutes=10),
        method="GET"
    )
    return url

Это работает для получения файла, за исключением того, что он отображается в строке браузера, поэтому я меняю на следующее..

def get_signed_url(name, content_type):
    storage_client = storage.Client.from_service_account_json("credentials.json")
    bucket = storage_client.bucket('my.bucket.com')
    blob = bucket.blob(name)
    url = blob.generate_signed_url(
        version="v4",
        expiration=datetime.timedelta(minutes=10),
        method="GET",
        response_disposition='attachment; filename=blob.png'
    )
    return url

Что согласно документам должно работать.

За исключением того, что теперь выдает ошибку SignatureDoesNotMatch.

0 ответов

Другие вопросы по тегам