MATLAB Answers

MATLABからAW​Sにテキストファイル​を送信したい

조회 수: 3(최근 30일)
MATLABからAWSのAmazonS3にテキストファイルを送信したいと考えています.
AWSでアクセスキー,アクセスシークレットキーを発行し,MATLABのコードに入力し,
上記のサイトをもとに通信しようと考えたのですが,うまくいきません.
そもそもこのサイトが通信するために必要なページなのかも分からなくなってきました.
もし,通信した経験がある方やノウハウをご存じの方がいらっしゃったら教えていただきたいです.
よろしくお願いいたします.

  댓글 수: 2

Kojiro Saito
Kojiro Saito 27 Jul 2020
S3からのデータ読み書きを行うには、上記のドキュメントでの設定が必要になります。
MATLABでどのようなコマンドを実行してどのようなエラーが出ているか、S3に関する部分だけでも抜粋してお教えいただくことはできますでしょうか?
ryota arai
ryota arai 27 Jul 2020
コードは以下です.
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
filename = 'C:\Users\wellness_root\Downloads\test1.txt';
setenv('AWS_ACCESS_KEY_ID', '-----------------');
setenv('AWS_SECRET_ACCESS_KEY', '------------------------------');
% ds = tabularTextDatastore('s3://wellness1resized/test.txt');
ds = tabularTextDatastore('s3://buckets/wellness1resized/test1/','TreatAsMissing', 'NA', 'SelectedVariableNames', {'ArrDelay'});
tt = ds;
tt = sortrows(rmmissing(tt));
write('s3://wellness1resized/test3/',tt);
% ↑データを書き込むフォルダの指定(空または存在しないフォルダーでなければならない)
% データを読み戻すには、関数 datastore を使用
ds = datastore('s3://wellness1resized/test3');
% ↑AWSに書き込み先とファイル名の指定
tt = tall(ds);
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
S3にフォルダの作成は出来ているのですが,S3にテキストファイルを送ることが出来ません.
他に調べても全く実現出来そうなヒントなどが見つかりません.よろしくお願いいたします.

댓글을 달려면 로그인하십시오.

채택된 답변

Kojiro Saito
Kojiro Saito 30 Jul 2020
関数writeはtall配列を書き込む関数で、datastoreを直接書き込むことができません。
tt = ds;
のところを
tt = tall(ds);
にすればS3にファイルが書き込まれると思います。

  댓글 수: 4

표시 이전 댓글 수: 1
Kojiro Saito
Kojiro Saito 3 Aug 2020
writeはtall配列のチェックポイントファイルですので、大容量データを前処理などして、後で使い回すときには向いているのですが、テキストファイルを送信する場合だけには不向きです。
こちらがR2020aまでのS3に対応している関数ですが、お使いのバージョンがR2020aなので、copyfileかwritematrix/writetableを使う方法が良いと思います。
下記の方法でいかがでしょうか?
A = 10;
writematrix(A,'test1.txt','Delimiter',';') %test1.txtに10という数値を書き込む
setenv('AWS_ACCESS_KEY_ID', '----------------------------');
setenv('AWS_SECRET_ACCESS_KEY', '----------------------------------------');
% テキストファイルのプッシュ
[status,msg,msgID] = copyfile('test1.txt', 's3://------/test3');
または、writematrixやwritetableで直接S3に書き込む方法もあります。
writematrix(A,'s3://------/test3/test1.txt','Delimiter',';')
ryota arai
ryota arai 4 Aug 2020
S3に書き込めました!ありがとうございます!!
Kojiro Saito
Kojiro Saito 5 Aug 2020
良かったです。もしよろしければ回答の採用をしていただけると幸いです。

댓글을 달려면 로그인하십시오.

추가 답변(0개)

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!