[解決済み] AWS S3 Node.JS sdkのオブジェクトが存在するかどうかを判断する方法
2023-02-17 17:27:57
質問
AWS SDKを使用して、ファイルが存在するかどうかを確認する必要があります。以下は、私が行っていることです。
var params = {
Bucket: config.get('s3bucket'),
Key: path
};
s3.getSignedUrl('getObject', params, callback);
これは動作しますが、問題は、オブジェクトが存在しない場合、コールバック(引数errとurl)はエラーを返さず、私がURLにアクセスしようとすると、それは"NoSuchObject"と表示されることです。
この
getSignedUrl
メソッドはオブジェクトが存在しない場合、エラーオブジェクトを返すべきではありませんか?オブジェクトが存在するかどうかを判断するにはどうすればよいですか?返された URL で本当に電話をかける必要があるのでしょうか?
どのように解決するのですか?
署名付きURLを作成する前に、バケツから直接ファイルが存在するかどうかを確認する必要があります。 そのための1つの方法として、HEADメタデータを要求する方法があります。
// Using callbacks
s3.headObject(params, function (err, metadata) {
if (err && err.name === 'NotFound') {
// Handle no object on cloud here
} else if (err) {
// Handle other errors here....
} else {
s3.getSignedUrl('getObject', params, callback);
// Do stuff with signedUrl
}
});
// Using async/await
try {
await s3.headObject(params).promise();
const signedUrl = s3.getSignedUrl('getObject', params);
// Do stuff with signedUrl
} catch (error) {
if (error.name === 'NotFound') {
// Handle no object on cloud here...
} else {
// Handle other errors here....
}
}
関連
-
[解決済み] Yarn にパッケージを強制的に再インストールさせるにはどうしたらいいですか?
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsで終了する方法
-
[解決済み] Node.jsアプリケーションをデバッグするにはどうすればよいですか?
-
[解決済み] Node.jsを完全にアンインストールして、最初から再インストールする方法 (Mac OS X)
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み] Node.jsでファイル/ディレクトリが存在するかどうかを同期的にチェックする
-
[解決済み] Node.jsのnpmモジュールをアンインストールするにはどうすればよいですか?
-
[解決済み] Nodejs AWS SDK S3 Presigned URLの生成
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】AWS STS AssumeRoleへのアクセスを可能にする方法
-
[解決済み】Google spreadsheet api Requestに不十分な認証スコープがあった。
-
[解決済み】エラー TRK0005: 位置特定に失敗しました。"CL.exe"
-
[解決済み] 非推奨パッケージに関するNPM警告メッセージ
-
[解決済み】MongooseでEnumを作成し使用する方法
-
[解決済み] Expectアサーションの型エラー -> expect(...).toExistは関数ではない
-
[解決済み] Node.jsのホスト名/IPが証明書のaltnamesと一致しない
-
[解決済み] TypeError: コールバックはnodejsの関数ではありません。
-
[解決済み] ExpressJS : res.redirect()が期待通りに動作しない?
-
[解決済み] エラーです。Expressでビューの検索に失敗しました