MatlabCompilerで作成したスタンドアローンアプリでのAWS S3へのデータアクセス方法について
3 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
Kojiro Saito
2025 年 3 月 13 日
公式ではなくユーザーさんの調査結果になりますが (参考: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
となります。
採用された回答
Kojiro Saito
2025 年 3 月 15 日
移動済み: Kojiro Saito
2025 年 3 月 18 日
コンポーネント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 件のコメント
Kojiro Saito
2025 年 3 月 18 日
移動済み: Kojiro Saito
2025 年 3 月 18 日
@和哉さん
確認ありがとうございました。解決して良かったです。
一旦上記のコメントを回答に移動させますので、回答の採用 (accept)の処理を実行いただけますでしょうか。
コンパイル時にコンポーネント35000がrequiredMCRProducts.txtに含まれていないのはそもそも挙動として不自然なので、こちらはバグ報告しておきます。
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で インストールとライセンスの紹介 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!