0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

コマンドで、S3オブジェクトも削除する方法

Last updated at Posted at 2021-11-06

●:AWSの画像データ

解決したいこと(内容の把握)

今まではデータベースリセット(rails db:migrate:reset)で、
保存したデータは全て削除できていた。
しかし、rails db:migrate:resetを行っても、AWSに保存した画像データは残る。

削除方法と、仕組みについて。

自力で調べた内容 & 立てた仮説

ローカル・本番環境ともに、データベース削除&再構成後にAWSを確認。
(rails db:migrate:reset)
S3のバケットには、画像オブジェクトが残っている。

削除に関して
バケット画面から、オブジェクトを選択し、削除は完了できた。

仕組みに関して
コマンド実行で画像を削除できないのは、Railsのデフォルトの機能外だから、と考えた。

作成したDB(ActiveStorageテーブル)から、
S3のバケットへの保存に変更する際、
ローカル、本番環境ともに、保存先を変更する記述をした。

つまり、削除も同様に手続きが必要だと考えられる。

調べてみると、purgeメソッドを使用すると、ストレージサービスからも削除できる記述が見られる。

消去すると、BLOBとファイルがストレージサービスから削除されます。

しかし、メソッドなので、コントローラー中での処理、
つまりdestoryアクションを呼び出したときに限られる。

コンソールでdb:dropした際、
S3のオブジェクトもろとも削除はできないのか?

上記を元に質問した結果

AWSコマンドラインインターフェースを入れると、可能なようだ。
Herokuコマンドを実行する際、heroku rails ~と接頭語をつけるように、
awsをつけてコマンドを打つ。

感想

今日はじめてAWSを触ったが、どうなっているのか?
わからない事だらけで、すごく気になった。
これはどうなんだ?という疑問が多すぎる。
個々を掘り下げる前に、
「S3概要」を公式ドキュメントなり、検索なりして
なんとな〜くでも、掴んだ方が良い気がした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?