Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
GCSの署名付きURL、 URLを返せば終わりじゃなかった話
Search
Cloud Ace
October 08, 2026
Technology
17
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GCSの署名付きURL、 URLを返せば終わりじゃなかった話
Cloud Ace
October 08, 2026
More Decks by Cloud Ace
See All by Cloud Ace
いくつ知ってる? GoogleのAIたち
cloudace
0
12
新卒1年目からAI駆動開発:期待と現実、そして気づいたこと
cloudace
0
20
Developer Knowledge MCP でサポート業務を改善する
cloudace
0
12
クラウドエース流AI駆動開発の実践
cloudace
0
23
ソフトウェアDNAとクラウドエージェントのススメ
cloudace
0
170
今年の最難関と思われるProfessional Security Operations Engineer の概要
cloudace
0
36
Gemini CLI x Google Cloud Document MCP で作る Google Cloud クイズボット
cloudace
0
38
魅力的な LT を作りたい
cloudace
0
39
AIエージェントはqじゃなくてwqしよう
cloudace
0
38
Other Decks in Technology
See All in Technology
Flutter Widget Previewerで始めるUIプレビューとVRTの自動化
sakusaku3939
0
180
なぜAI時代に技術記事を書くのか?どう書くのか? 〜bunの場合〜
kworkdev
PRO
0
1.1k
なぜ東京にいる私が、新潟の技術コミュニティを運営するのか by 八雲慎之助
yakumo
0
140
Claude for Google Workspaces ポン出し/claude-for-google-workspace-slide-conversion
emiki
0
13k
ポケモン対戦を自動で記録して振り返ろう
fufufukakaka
0
420
1週間、Opus封印でお願いします
kintotechdev
0
400
re:Invent の去年のスケジュールを公開します!
miu_crescent
PRO
0
120
Patterns in AI Driven Software Development
akosma
PRO
0
370
AWS Continuum for Penetration Testing に Deep Dive してみる
asanoharuki
2
1.5k
You Have Agency(サンキュー、Ruby)
snoozer05
PRO
4
610
Vibe-to-Spec開発_実践ガイド
happysamurai294
0
130
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
5
2.5k
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
3.2k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.8k
Test your architecture with Archunit
thirion
2
2.5k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
750
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
900
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
590
Technical Leadership for Architectural Decision Making
baasie
3
620
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Thoughts on Productivity
jonyablonski
76
5.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Tell your own story through comics
letsgokoyo
1
1.1k
Transcript
GCSの署名付き URL、 URLを返せば終わりじゃなかった話 クラウドエース株式会社 2026.04.14 クラウドエース株式会社|© 2026 Cloud Ace, Inc.
遠藤柊弥
自己紹介 遠藤 柊弥(Shuya Endo) クラウドエース株式会社 技術本部 第一開発部 Google Cloud上で動くWebアプリ開発に携わるフロントエンドエンジニアです! All
Certification Holders 2025受賞! 実務や趣味でGoogle Cloudを使いこなしたい! クラウドエース株式会社|© 2026 Cloud Ace, Inc. 1
背景:なぜ GCS(Google Cloud Storage)の署名付き URLを使った か • レポート機能でPDFとCSVを配布したかった • アクセス権のあるユーザーだけが取得できるようにしたかった
• そのため保存先はGCS、取得方法は署名付きURLにした クラウドエース株式会社|© 2026 Cloud Ace, Inc. 2
最初の想定 GCSのURLを返せば、あとはブラウザがうまくやってくれると思っていた 1. ユーザーがボタンをクリックする 2. BEがGCSの署名付きURLを返す 3. FEはそのURLを別タブで開く(プレビュー) かローカル保存(ダウンロード) する
これでプレビューも保存も、ほぼ終わりだと思っていた クラウドエース株式会社|© 2026 Cloud Ace, Inc. 3
どうなったか 1. プレビューを実行しようとしてもダウンロードになる! • Geminiの提案を受け、対策としてプレビューAPIヘッダーにContent-Disposition: inlineを付けて みたが効果なし → それだとBEからのAPIレスポンスに対する指定になるので意味がない •
FEが実際に開くのはAPIレスポンスではなく署名付きURL クラウドエース株式会社|© 2026 Cloud Ace, Inc. 4
補足:ブラウザ設定 ブラウザ設定次第では、PDFはダウンロードになる Chromeの場合: 設定 > プライバシーとセキュリティ > サイトの設定 > PDFドキュメント
クラウドエース株式会社|© 2026 Cloud Ace, Inc. 5
どうなったか 2. 適切なファイル名が表示されない! • プレビュー時のファイル名はPDF自体がメタデータで持っているタイトルが表示される • 一方、ダウンロード時のファイル名はGCSに保存されている名前がデフォルト値として表示される → BEでPDFを生成・保存する過程で適切なメタデータとファイル名をそれぞれセットするなどの処理 が必要
つまり、表示や保存の挙動は GCS側ではなく、アプリ側で設計する 必要があった クラウドエース株式会社|© 2026 Cloud Ace, Inc. 4
補足:ファイル名 プレビューのファイル名(左)と保存時のデフォルトファイル名(中央) ※ChromeのPDFビュアーの場合 クラウドエース株式会社|© 2026 Cloud Ace, Inc. 5
そこでどう整理したか 以下のような形に落ち着いた GCS + BE アクセス権を確認し、短い有効 期限の署名付き URLを発行す るだけ FE(プレビュー)
FE(ダウンロード) PDFを別タブで開くボタン は用 意したが、表示そのもの はブラ ウザ設定に依存すると割り 切った ファイル名の変更が難しい仕 様であったため、 FEでblob取 得+名前を付けて保存 するこ とでファイル名を設定した ※FE側で <a download="任意のファイル名"> を 作ってクリックさせる クラウドエース株式会社|© 2026 Cloud Ace, Inc. 6
まとめ 署名付きURLを利用する場合、どこで挙動が決まるかを先に整理する必要があ る • GCSの署名付きURLは、安全に配る仕組み としてはとても便利だった • ただし、どう表示されるか と どう保存されるか
は別で設計が必要だった • 表示・保存はGCS / BE / FEのどこで何を制御するか を考える必要がある クラウドエース株式会社|© 2026 Cloud Ace, Inc. 7
Thank you. クラウドエース株式会社|© 2026 Cloud Ace, Inc.