MatlabCompilerで作成したスタンドアローンアプリでのAWS S3へのデータアクセス方法について
14 views (last 30 days)
Show older comments
MATLAB から Amazon S3 バケットにアクセスして、S3 上にあるバケットの存在確認およびファイルのデータを取得するスクリプトを作成しました。
MATLAB上での実行では問題なく動作し成功のメッセージボックスがでることを確認しましたが、このスクリプトをMATLAB Compilerでスタンドアローンアプリにすると失敗のメッセージボックスが出力されてしまいました。
何が原因か教えてください。
% AWSの設定
awsAccessKey = '**********';
awsSecretKey = '**********';
setenv('AWS_ACCESS_KEY_ID', awsAccessKey);
setenv('AWS_SECRET_ACCESS_KEY', awsSecretKey);
setenv('AWS_DEFAULT_REGION','ap-northeast-1');
% バケットの存在確認
if isfolder("S3上のバケットパス")
msgbox("isfolder成功")
else
msgbox("isfolder失敗")
end
% S3上にあるファイルのデータを取得
try
testData = readmatrix("S3上のファイルパス");
if ~isempty(testData)
msgbox("readmatrix成功")
else
msgbox("readmatrix失敗")
end
catch
msgbox("readmatrix失敗")
end
7 Comments
Kojiro Saito
on 13 Mar 2025
公式ではなくユーザーさんの調査結果になりますが (参考:https://jp.mathworks.com/matlabcentral/answers/780072)、下記のコマンドでコンポーネント番号からコンポーネント情報を調べることができます。
pcmn = matlab.depfun.internal.ProductComponentModuleNavigator;
pcmn.productInfo(35000)
「35002 35003 35010」はそれぞれ
35002 Graphics
35003 Non Interactive MATLAB
35010 Numerics
となります。
Accepted Answer
Kojiro Saito
on 15 Mar 2025
Moved: Kojiro Saito
on 18 Mar 2025
コンポーネント35000 (MATLAB Runtime - Core)を含めるようにしてMATLAB Runtimeのインストーラーを作ってみてはいかがでしょうか。
compiler.runtime.download % 4.4 GBのダウンロードなので少々時間が掛かります
compiler.internal.buildinstallagent(35000, 35002, 35003, 35010) % requiredMCRProducts.txtに入っていない35000を追加
MATLAB Runtimeのインストーラーが
C:\Users\ユーザー名\AppData\Local\MathWorks\installAgent\R2024b\win64\InstallAgent_f00000000000000000.zip
のようなファイル名で作成されますので、Zipを配布先のマシンにコピーし、解凍してsetup.exeを実行してMATLAB Runtimeをインストールします。
その後で「for_redistribution」にある「MyAppInstaller_web.exe」でスタンドアロンアプリのインストールを実行します。MATLAB Runtimeのインストールはスキップされます。
2 Comments
Kojiro Saito
on 18 Mar 2025
Moved: Kojiro Saito
on 18 Mar 2025
@和哉さん
確認ありがとうございました。解決して良かったです。
一旦上記のコメントを回答に移動させますので、回答の採用 (accept)の処理を実行いただけますでしょうか。
コンパイル時にコンポーネント35000がrequiredMCRProducts.txtに含まれていないのはそもそも挙動として不自然なので、こちらはバグ報告しておきます。
More Answers (0)
See Also
Categories
Find more on インストールとライセンスの紹介 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!