
Я создал сервис, используя:
storage.Client(project='имя_проекта', учетные данные=учетные данные)
https://googleapis.dev/python/storage/latest/client.html
И я могу загружать, удалять и перечислять файлы в пользовательских контейнерах Google Cloud. Я видел возможность загрузить файл на сервер, но есть ли возможность получить ссылку для загрузки?
решение1
Вы можете получить ссылку для скачивания, заменив значения следующей строки:
https://storage.googleapis.com/{bucket.name}/{blob.name}
Если вам необходимо ограничить разрешения или время для выполнения запроса, вы можетесгенерировать подписанный URL
Подписанный URL — это URL, который предоставляет ограниченное разрешение и время для выполнения запроса. Подписанные URL содержат информацию об аутентификации в строке запроса, что позволяет пользователям без учетных данных выполнять определенные действия с ресурсом. При создании подписанного URL вы указываете учетную запись пользователя или службы, которая должна иметь достаточно разрешений для выполнения запроса, который будет выполнять подписанный URL. После создания подписанного URL любой, кто им владеет, может использовать подписанный URL для выполнения определенных действий, таких как чтение объекта, в течение указанного периода времени.
решение2
Вы не можете использовать маркер доступа для подписи URL, поскольку маркеры доступа ограничены по времени (около часа). Альтернативой использованию файла закрытого ключа для подписи URL является использование функциональности SignBlob IAM. Вы можете использовать ее с помощью “gsutil”
команды, ”gsutil signurl -u --”
как указано вдокументация. Обратите внимание, что при использовании этого метода подписанный URL-адрес действителен только в течение 12 часов, по сравнению с максимальным сроком в 7 дней, указанным вдокументация
Служба signBlob регулярно ротирует используемый ею закрытый ключ. Сгенерированные подписанные URL-адреса пригодны для использования в течение как минимум 12 часов, но могут перестать работать до установленного вами срока действия, если срок действия превышает 12 часов. Учитывая это, подписанные URL-адреса, сгенерированные с помощью signBlob, лучше всего использовать для краткосрочного доступа к ресурсам.