開発

gsutil cpでリストで指定したファイルをコピーする方法

2020-10-10

gsutil cpでリストで指定したファイルをコピーする方法

開発者がコマンドラインからGoogle Cloud Storage (GCS) を操作できるようにした gsutil パッケージ。

複数のファイルをGCPにコピーする場合は gsutil cp コマンドを並列に処理する為に gsutil -m cp src_dir/*.txt gs://my-bucket といった感じで使う。

複数コピーは可能だが、指定したファイルのみ複数コピーするにはどうしたらよいのか。

さっきの src_dir/*.txt みたいに指定したらいいんじゃないの?
それだとフォルダに 1.txtから5.txtまであった場合、全部コピーしちゃうでしょ。
1.txtと2.txtのみコピーしたい場合とか困るわけですよ。
あー、そっか。
その場合どうするんだろ。

今回はそんな問題を解決するために、「gsutil cpでリストで指定したファイルをコピーする方法」を解説する。

この記事を書いている人


システムエンジニア、AIエンジニアと、IT業界で10年以上働いている中堅。PythonとSQLが得意。最近GCP環境を習得中。

記事を読むメリット

  • gsutil cpでリストで指定したファイルをコピーする方法がわかる

  • gsutil cpでリストで指定したファイルをコピーする方法

    gsutil cpでリストで指定したファイルをコピーする方法

    gsutil cpでリストで指定したファイルをコピーする方法、それは -I (アイ)のオプションを使うことだ。

    Googleのリファレンスを読むと、 -I (アイ)のオプションを使うと stdin、つまり標準入力を受け付けるようになる。

    Unixの cat コマンドでfilelistを読み込んで1行ずつ分解したリストを、パイプで繋いで gsutil -m cp -I に渡すことで、filelistに記載された全てのファイルをコピーすることができる。

    You can use the -I option with stdin to specify a list of URLs to copy, one per line. This allows you to use gsutil in a pipeline to upload or download objects as generated by a program:

    cat filelist | gsutil -m cp -I gs://my-bucket
    



    で、どうやって使うの?
    上で書いた「filelist」ってのがファイル一覧の書かれたテキストファイル、つまり「filelist.txt」とすればわかりやすいかな。

    srs_dirのフォルダにあるファイル

    1.txt
    2.txt
    3.txt
    4.txt
    5.txt
    

    filelist.txtの中身

    1.txt
    2.txt
    

    実行するコマンド

    cat filelist.txt | gsutil -m cp -I gs://my-bucket
    
    こうするとフォルダの中には5つのファイルがあるけど、filelist.txtで指定した2つのファイルだけコピーすることができます。
    なるほどー



    gsutil cpでリストで指定したファイルをコピーする方法 まとめ

    gsutil cpでリストで指定したファイルをコピーするには -I (アイ)のオプションを使って catで読み込んだリストを引数に指定しよう。

    cat filelist.txt | gsutil -m cp -I gs://my-bucket
    



    他にもgsutilで"argument list too long"エラーが出てしまう原因と解決方法の記事なんかもあるので、気になったら見て欲しい。

    ITipsと同じようなブログを作る方法

    ブログに興味がありますか?

    もしブログに興味がある場合は↓このページ↓を参考にすれば、ITipsと同じ構成でブログを作ることができます

    サーバー、ドメイン、ASPと【ブログに必要なものは全て】このページに書きました。
    同じ構成でブログ作るのはいいけど、記事はマネしないでネ (TДT;)

    ランキング参加中

    にほんブログ村 IT技術ブログへ

    他にもブログやSNSで紹介してくれると励みになります。

    はてブのコメントで酷評されると泣きます(´;ω;`)

    -開発
    -, , , ,

    © 2024 ITips