AWS CLIを使い、大量のファイルを自動アップロードする方法を教えてください

0

AWS CLIを使い、C:\Users\test\tempに保存されている大量のファイルを、s3://test/document/へ自動アップロードする方法を教えてください。ファイルは、1TB程あります。s3://test/document/の最大容量の確認方法と上限変更も含めて操作方法を教えてください。 以下のコードを試したのですが、約4MBまでしかファイルアップロード出来ませんでした。 scp -i ./test.pem -r C:\Users\test\temp ec2-user@12.345.678.9:/home/ec2-user/

1回答
0

scp -i ./test.pem -r C:\Users\test\temp ec2-user@12.345.678.9:/home/ec2-user/

上記のコマンドはEC2のec2-userのホームディレクトリにファイルをアップロードするコマンドです。
このコマンドではS3にアップロードすることはできません。

S3へファイルをコマンドラインからアップロードするにはAWS CLIを使用する必要があります。
AWS CLIのインストール方法などは以下のブログで紹介されています。
https://blog.denet.co.jp/install-the-aws-cli-and-download-the-s3-file/

AWS CLIだと1ファイル5TBまでアップロードできます。
S3の保存容量自体は無制限です。
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/qfacts.html

アップロードは以下のコマンドで可能です。

aws s3 cp C:\Users\test\temp\ファイル名 s3://test/document/
profile picture
エキスパート
回答済み 2ヶ月前
  • ご回答ありがとうございます。AWS CLI インストール後(下記バージョン確認)、aws s3 cp <source> <target> --recursive コマンドを実行しますと、[SSL: CERTIFICATE_VERIFY_FAILED]エラーになってしまいます。参考ブログの「aws configureでawsアカウントの情報を設定します。事前に準備しておいたIAMユーザのアクセスキーとシークレットキーを入力します。」を再度確認しましたが、特に間違いなさそうです。

    C:\Users\test>aws --version aws-cli/2.17.32 Python/3.11.9 Windows/10 exe/AMD64

  • AWS CLIはどのような環境で実行されていますか? プロキシ配下のPCなどで実行しているとそのようなエラーが発生することがあります。 https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-troubleshooting.html#tshoot-certificate-verify-failed
    あまり推奨はされていませんが、コマンドのオプションで「--no-verify-ssl」を付ければとりあえずは実行できると思います。 https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-options.html

    aws s3 cp <source> <target> --recursive --no-verify-ssl
    
  • 参考ブログの4.1動作確認まで行いました。会社のPCで行っています。 aws s3 ls コマンドで下記メッセージが表示されました。 SSL validation failed for https://s3.us-east-1.amazonaws.com/ [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)

    aws s3 cp <source> <target> --recursive --no-verify-ssl コマンドで実行出来ますが、推奨されていないとの事、解決手順を教えていただけないでしょうか。参考ブログ「AWS CLI がプロキシの証明書を信頼していない」を参照しましたが、操作方法がいまいち理解出来ませんでした。

  • 証明書を「--ca-bundle」オプションで指定することで解決できると思います。 会社のPCとなると証明書周りは会社で管理されている可能性があるので情報システム部などPCを管理している部署に問い合わせてご確認いただいた方がよいと思います。 コマンド自体は以下のような形になります。

    aws s3 cp <source> <target> --recursive --ca-bundle mycertfile.crt
    
  • 一応ルートCA証明書は以下のURL先からダウンロードできます。 https://www.amazontrust.com/repository/
    bashシェルだと以下のような形でダウンロードしてコマンド実行までできると思います。

    wget https://www.amazontrust.com/repository/AmazonRootCA1.pem
    aws s3 ls --ca-bundle AmazonRootCA1.pem
    

    WindowsのPowerShellの場合は以下のような形になると思います。

    curl https://www.amazontrust.com/repository/AmazonRootCA1.pem -o AmazonRootCA1.pem
    aws s3 ls --ca-bundle AmazonRootCA1.pem
    

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ