MatlabCompilerで作成したスタンドアローンアプリでのAWS S3へのデータアクセス方法について
Mostrar comentarios más antiguos
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 comentarios
Kojiro Saito
el 12 de Mzo. de 2025
メッセージボックスだけではエラーの原因の特定ができないので、
catch ME
msgbox(ME.message)
end
のようにエラー情報の内容を表示するようにしてみてはいかがでしょうか。
和哉
el 12 de Mzo. de 2025
和哉
el 13 de Mzo. de 2025
Kojiro Saito
el 13 de Mzo. de 2025
@和哉さん
MATLAB RuntimeのWebページからダウンロードできるインストーラーでは、全てのコンポーネントがインストールされるためファイルサイズが大きくなってしまいます。
スタンドアロンアプリのアプリを作成する際に「for_testing」フォルダーに「requiredMCRProducts.txt」というファイルが作成され、これに書かれている35002などの番号が必要なコンポーネントになります。
スタンドアロンアプリを作って最初にインストールした際と、その後でコードを追加されたりしてコンポーネント番号が今の場合だと増えている可能性はありませんでしょうか? その場合、一度MATLAB Runtimeをアンインストールし、再度スタンドアロンアプリのインストーラー (MyAppInstaller_web.exe)を実行することで必要なコンポーネントのみをインストールすることができます。
和哉
el 13 de Mzo. de 2025
Kojiro Saito
el 13 de Mzo. de 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
となります。
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre インストールとライセンスの紹介 en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!