MATLAB から Amazon S3 上にあるファイルにア​クセスできないのはな​ぜですか?

MATLAB から Amazon S3 バケットにアクセスして、S3 上にあるファイルのデータを取得するために、tabularTextDatastore や readtable 関数を実行すると、エラーが発生します。
 
>> setenv('AWS_ACCESS_KEY_ID', '******');
>> setenv('AWS_SECRET_ACCESS_KEY', '******');
>> ds = tabularTextDatastore('s3://<bucket_name>/myfile.csv')
エラー: tabularTextDatastore (line 147)
一致するファイルまたはフォルダーが見つかりません:
's3://<bucket_name>/myfile.csv'
system や dos コマンドで、AWS コマンドラインインターフェイス(AWS-CLI)を使用して、ファイルにアクセスはできます。何が原因か教えてください。

 Accepted Answer

MathWorks Support Team
MathWorks Support Team on 21 Apr 2021
Edited: MathWorks Support Team on 21 Apr 2021
"AWS_REGION" 環境変数が設定されていないことが考えられます。
下記のように setenv 関数で AWS_REGION を明示的に指定することをお試しください。
>> setenv('AWS_REGION','ap-northeast-1');
なお、MATLAB バージョンによって、上記環境変数名が変更されている場合があります。
R2020b およびそれ以降のバージョンでは、"AWS_REGION" ではなく、"AWS_DEFAULT_REGION" を定義する必要があります。詳細については、使用しているリリースのドキュメントを照してください。
・リモートデータの操作
(こちらは最新版のヘルプドキュメントが表示されます)
また、R2020a 以前のバージョンをご利用の場合、上記環境変数を設定しても、下記のエラーが発生することがあります。
エラー: tabularTextDatastore (line 147)
フォルダー 's3://<bucket_name>/myfile.csv' にはファイルがないか、または空です。'IncludeSubfolders' を使用して、すべてのサブフォルダーのファイルを含めてください。
この場合、ご利用の環境において、バケットのコンテンツを一覧表示する権限がないことに起因していることが考えられます。回避方法としては、下記をご検討ください。
  • ファイルをサブフォルダにコピーしてから、サブフォルダからファイルにアクセスする
  • Amazon S3 環境のアクセス許可で「パブリックアクセスをすべて ブロック」を「オフ」にする
  • MATLAB R2020b 以降のバージョンを使用する 

More Answers (0)

Categories

Find more on MATLAB 入門 in Help Center and File Exchange

Products

Release

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!