CloudStorage 서명된 URL에 만료 날짜를 설정했지만 며칠 후에 403에서 액세스할 수 없습니다.
TL;DR
서명된 URL을 생성하는 서비스 계정의 키를 명시적으로 설정합니다.
배경
CloudStorage에 업로드한 동영상에서 미리보기 이미지를 생성하고 싶습니다.
CloudFunctions에서 업로드 트리거를 사용하여 생성하는 프로세스를 구현했습니다.
다음과 같은 느낌의 코드입니다.
htps : // 기주 b. 코 m/후우레바세/훈 c치온 s-사 mpぇs/bぉb/마s테 r/게네라테-mb 없는 l/푼c치온 s/그리고 x. js
생성된 미리보기 이미지는 CloudStorage에 업로드하고,
서명 된 URL을 생성하여 데이터베이스에 저장하는 것과 같은 것을 구현했습니다.
며칠 후에 생성한 URL이 403에서 연주되게 되었습니다.
제대로 샘플과 같이 유효기간을 설정하고 있었는데입니다.
htps : // 기주 b. 코 m / 푹신 헛소리 / 훙 c 치온 s mp ぇ s / b ぉ b / 8f599 4c56 에 f849136982d19f4d9d5348d3dc58 x. js#L84-L92
// Get the Signed URLs for the thumbnail and original image.
const config = {
action: 'read',
expires: '03-01-2500',
};
const results = await Promise.all([
thumbFile.getSignedUrl(config),
file.getSignedUrl(config),
]);
원인
Issue 에 비슷한 현상이 있는 사람이 있었습니다.
이 댓글에 따르면,
서비스 계정의 키는 일정 시간(5~7일)이 경과하면 삭제됩니다.
라는 것입니다.
CloudFunctions에는 임시 서비스 계정이 있으므로,
CloudFunctions에서 서명한 URL은 '일정 시간(5~7일)'이 서 버리면 일치하지 않는다는 것이었습니다.
유효 기한이 짧아서 좋으면 아무런 문제가 없는 것이라고 생각합니다만,
1일 이상으로 하는 경우는 보험도 하지 않고 별도 서비스 어카운트를 명시적으로 설정해 줄 필요가 있을 것 같습니다.
대응
이 댓글 입니다.
설정 절차
서비스 계정 키 만들기
CloudStorage에 업로드한 동영상에서 미리보기 이미지를 생성하고 싶습니다.
CloudFunctions에서 업로드 트리거를 사용하여 생성하는 프로세스를 구현했습니다.
다음과 같은 느낌의 코드입니다.
htps : // 기주 b. 코 m/후우레바세/훈 c치온 s-사 mpぇs/bぉb/마s테 r/게네라테-mb 없는 l/푼c치온 s/그리고 x. js
생성된 미리보기 이미지는 CloudStorage에 업로드하고,
서명 된 URL을 생성하여 데이터베이스에 저장하는 것과 같은 것을 구현했습니다.
며칠 후에 생성한 URL이 403에서 연주되게 되었습니다.
제대로 샘플과 같이 유효기간을 설정하고 있었는데입니다.
htps : // 기주 b. 코 m / 푹신 헛소리 / 훙 c 치온 s mp ぇ s / b ぉ b / 8f599 4c56 에 f849136982d19f4d9d5348d3dc58 x. js#L84-L92
// Get the Signed URLs for the thumbnail and original image.
const config = {
action: 'read',
expires: '03-01-2500',
};
const results = await Promise.all([
thumbFile.getSignedUrl(config),
file.getSignedUrl(config),
]);
원인
Issue 에 비슷한 현상이 있는 사람이 있었습니다.
이 댓글에 따르면,
서비스 계정의 키는 일정 시간(5~7일)이 경과하면 삭제됩니다.
라는 것입니다.
CloudFunctions에는 임시 서비스 계정이 있으므로,
CloudFunctions에서 서명한 URL은 '일정 시간(5~7일)'이 서 버리면 일치하지 않는다는 것이었습니다.
유효 기한이 짧아서 좋으면 아무런 문제가 없는 것이라고 생각합니다만,
1일 이상으로 하는 경우는 보험도 하지 않고 별도 서비스 어카운트를 명시적으로 설정해 줄 필요가 있을 것 같습니다.
대응
이 댓글 입니다.
설정 절차
서비스 계정 키 만들기
이 댓글 입니다.
설정 절차
서비스 계정 키 만들기
IAMと管理
를 엽니다. サービスアカウント
를 엽니다. IMA 추가
IAMと管理
를 엽니다. IAM
를 엽니다. 생성된 키를 Functions 환경 변수에 정의
// jsonにあるprivate_key
firebase functions:config:set service_account.private_key=xxxxxxxx
// jsonにあるclient_email
firebase functions:config:set service_account.client_email=xxxxxxxx
// 設定されているか確認
firebase functions:config:get
Functions의 Storage 인스턴스 생성 옵션 설정
// 環境変数を取得
const credentials = {
client_email: functions.config().service_account.client_email,
private_key: functions.config().service_account.private_key
}
// キーを設定してインスタンス生成
const gcs = new Storage({ credentials: credentials });
// 以降任意の処理
결과
이 문장이 갱신되지 않고 붙어 있다는 것은 분명 해결할 수 있었다는 것일 것이다...
참고
서비스 계정 키 만들기
h tps : // c ぉ d. 오, ぇ. 코 m/아 m/도 cs/c 레아친 g-마나긴 g-세 r hl = 그럼
Issue
htps : // 기주 b. 코 m / 오오 g ぇ 아피 s / 그래서 js-s 어깨 / 이스에 s / 244
htps : // 기주 b. 코 m / 오 g ぇ 아피 s / 그래서 js-s 가시 / 이스에 s / 244 # 이스에 코멘 t-403601209
GCP 측 설정
htps : // 이 m / 가시 l / ms / 665df7b1d806577b32
Reference
이 문제에 관하여(CloudStorage 서명된 URL에 만료 날짜를 설정했지만 며칠 후에 403에서 액세스할 수 없습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/N04h/items/45230b5f2bcc8d8bad92
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
서비스 계정 키 만들기
h tps : // c ぉ d. 오, ぇ. 코 m/아 m/도 cs/c 레아친 g-마나긴 g-세 r hl = 그럼
Issue
htps : // 기주 b. 코 m / 오오 g ぇ 아피 s / 그래서 js-s 어깨 / 이스에 s / 244
htps : // 기주 b. 코 m / 오 g ぇ 아피 s / 그래서 js-s 가시 / 이스에 s / 244 # 이스에 코멘 t-403601209
GCP 측 설정
htps : // 이 m / 가시 l / ms / 665df7b1d806577b32
Reference
이 문제에 관하여(CloudStorage 서명된 URL에 만료 날짜를 설정했지만 며칠 후에 403에서 액세스할 수 없습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/N04h/items/45230b5f2bcc8d8bad92텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)