
다음을 사용하여 서비스를 만들었습니다.
Storage.Client(프로젝트='project_name', 자격 증명=credentials)
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
액세스 토큰에는 시간 제한(약 1시간)이 있으므로 액세스 토큰을 사용하여 URL에 서명할 수 없습니다. URL에 서명하기 위해 개인 키 파일을 사용하는 대신 IAM의 SignBlob 기능을 사용하는 것입니다. 에서 언급한 대로 “gsutil”
명령을 사용 하여 사용할 수 있습니다.”gsutil signurl -u --”
선적 서류 비치. 이 방법을 사용하면 서명된 URL은 12시간 동안만 유효합니다. 이는 다음에서 언급한 최대 7일과 비교됩니다.선적 서류 비치
signBlob 서비스는 사용하는 개인 키를 정기적으로 교체합니다. 생성된 서명된 URL은 최소 12시간 동안 사용할 수 있지만 만료 시간이 12시간을 초과하는 경우 설정된 만료 시간 이전에 작동이 중지될 수 있습니다. 따라서 signBlob에서 생성된 서명된 URL은 리소스에 대한 단기 액세스에 가장 적합합니다.