LoginSignup
23
26

More than 5 years have passed since last update.

S3内のファイルを簡単に検索する

Last updated at Posted at 2015-07-29

s3でログをためていったときにファイルを細かく分けてしまったために、1つのフォルダ内に大量のファイルを保存してしまった,検索することができない,どうしよう。となってしまった。その時のメモ
S3のダッシュボードではファイル名を全て知っている場合直接うちこむことで検索することができる。しかし,途中の文字列で絞り込むなど細かい検索はできない。
s3cmd, brewを使用してこの問題を解決してみた。

目的

s3cmd ls s3://バケット名/フォルダ名/ | grep 検索内容

というコマンドによってshellからs3の特定フォルダ内を検索する。

環境

OS X 10.10.3
Homebrew(http://brew.sh)

アクセスキー,シークレットキーの確認

S3に外部からアクセスするためにはIAMユーザーのアクセスキー,シークレットキーが必要

AWSダッシュボード -> Identity & Access Management -> ユーザー

から自分のユーザー名を選択すると下の方に「認証情報」というタブがある。そのタブを開けばアクセスキー(下図 Access Key ID)とその発行日を見ることができる。ただしシークレットキーはアクセスキーの発行時以外確認することが不可能であるため控えていなかった場合は再度アクセスキーごと生成しなおす必要がある。

aws-iam.png

s3cmdのインストールと設定

s3cmdとは名前の通りシェルからs3を直接いじれるツールである。今回はこのツールを用いてフォルダ内検索を行う。

brew install s3cmd
s3cmd --configure

configureの際,アクセスキーとシークレットキーを求められるので入力,それ以外は何も入力せずにEnterでOK
configureによって~/.s3cfgという設定ファイルが生成される。

s3cmdを使ってs3の内容を表示する

s3cmd ls

を行うと現在アクセスできるs3のバケット一覧が表示される。

s3cmd ls s3://バケット名/

同様にバケットを指定することでバケット内のディレクトリ一覧を取得できる。

s3cmd ls s3://バケット名/フォルダ名/

によってフォルダ内を表示することができる。

s3cmdを使ってフォルダ内を検索する

shellでフォルダ内を表示できたならあとはgrepを使えば検索できるはず!

s3cmd ls s3://バケット名/フォルダ名/ | grep 検索内容

これでフォルダ内のファイルを検索することが可能になった。

23
26
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
23
26