Приложение Django, запущенное на Google Cloud Run, не работает SignatureDoesNotMatch при загрузке хранилища SignedUrl

Я создаю signed_urls с помощью приложения Django, работающего на Cloud Run.

def get_signed_url_for_upload(path):
    blob = settings.STORAGE.bucket.blob(path)
    expiration_time = timezone.now() + timedelta(minutes=120)
    signed_url = blob.generate_signed_url(expiration_time)
    return signed_url

Я пытаюсь использовать SignedURL, созданный с помощью команды Curl :

curl -X PUT --upload-file /Users/utku/Desktop/cat.mp4 "https://storage.googleapis.com/development-videoo-storage/d340a0e21c6b4681a1c26a46a6c30fee?Expires=1654985178&GoogleAccessId=videoo-348016%40appspot.gserviceaccount.com&Signature=delh%2BHVpqzaYl%2BGb%2FndhJbY5d7RtI4RH4q12BTd1NJoK9iU6%2BlE%2FrWAaBvdxgarafKIRH0PFpFfsFvYa4%2BauehUwaOWaY46e93fl3Cdok6Q%2BklVjQLrdAMS%2BT38YTDPdSTp1BGJir2UfsCFmjTJR7eul29y%2BjxrSZtAgUHc6%2Fym7%2FAjLuOheeKZauJAk1LmLejxPt8%2FsKm3jgHxtdAmq45OFZKVvCuYXmNghSBDTBPHOND%2BSmOyC1OXMOCFBjwgNGKziypf2OJpdQWe4iV4z9r2Afa9HYE5uHMB67ahBRip03LVCZApSnAZM7OaJrQaCPWk9pDQLaUu2rZYG49%2B9HA%3D%3D"

Ниже приведен вывод, который я получаю от команды curl :

<?xml version='1.0' encoding='UTF-8'?><Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your Google secret key and signing method.</Message><StringToSign>PUT


1654985178
/development-videoo-storage/d340a0e21c6b4681a1c26a46a6c30fee</StringToSign></Error>%

В документации Google Cloud : https://cloud.google.com/run/docs/configuring/service-accounts

В нем говорится, что Cloud Run по умолчанию использует учетную запись службы вычислительного механизма: enter image description here

Вот мои настройки учетной записи Compute Engine Service Account :

enter image description here

Есть предложения, что я могу сделать, чтобы исправить эту ошибку "SignatureDoesNotMatch"?

Вернуться на верх