https://github.com/takeyuweb/rails-activestorage-r2
ActiveStorage の保存先として Cloudflare R2 を使う実験
https://github.com/takeyuweb/rails-activestorage-r2
Last synced: 5 months ago
JSON representation
ActiveStorage の保存先として Cloudflare R2 を使う実験
- Host: GitHub
- URL: https://github.com/takeyuweb/rails-activestorage-r2
- Owner: takeyuweb
- Created: 2022-05-12T09:29:32.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-05-12T11:21:28.000Z (about 4 years ago)
- Last Synced: 2024-12-30T13:36:41.432Z (over 1 year ago)
- Language: Ruby
- Size: 25.4 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ActiveStorage + Cloudflare R2 Demo
## Configurations
```
$ bin/rails credentials:edit
cloudflare:
r2_access_key_id: 00000000000000000000000000000000
r2_secret_access_key: 0000000000000000000000000000000000000000000000000000000000000000
r2_account_id: 00000000000000000000000000000000
r2_bucket: yourbucketname
```
### config/storage.yml
```yaml
cloudflare:
service: S3
access_key_id: <%= Rails.application.credentials.dig(:cloudflare, :r2_access_key_id) %>
secret_access_key: <%= Rails.application.credentials.dig(:cloudflare, :r2_secret_access_key) %>
endpoint: https://<%= Rails.application.credentials.dig(:cloudflare, :r2_account_id) %>.r2.cloudflarestorage.com
bucket: <%= Rails.application.credentials.dig(:cloudflare, :r2_bucket) %>
region: auto
force_path_style: true
```
### config/environments/development.rb
```yaml
# Cloudflare R2 を使う
config.active_storage.service = :cloudflare
# R2のオブジェクトに署名付き URLでInternetから直接アクセスすることはできないので今回はプロキシモードを使う
# 本運用では webp 変換などを行う Worker を介してアクセスするように設定する必要がありそう
config.active_storage.resolve_model_to_route = :rails_storage_proxy
```