[AWS]置換ファイル格納(S 3)
概要
現在進行中のプロジェクトには、EC 2のファイルストレージとDBが含まれています.MVPは完了しているので、アーキテクチャの構成を変更したい.
まず、サーバに格納されている静的イメージファイルを別のストレージに移動し、サーバとファイルストレージを物理的に分離する必要があります.選択画像リポジトリはS 3である.調味料が一番多いので
なぜファイル・リポジトリを切断しますか?
実際,理論や概念による分離理由は不明である.必要性を感じただけに、リポジトリを分離することにしましたが、開発->導入中にイメージファイルにうっかり触れてしまうことがありました.人々の手から遠ざかることを考慮して、ファイル・リポジトリを分離することにした.
必要なモジュール
S 3設定
Bucketの作成
S 3で作成されたリポジトリをBucketと呼ぶ.アマゾンS 3に移動し、簡単にパケットを作成する.
Credentials
https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html
aws documentを表示すると、javascriptで認証情報を設定するさまざまな方法が表示されます.
環境変数を使用する方法を選択します!
環境変数の方法でnodeモジュールdotnvを使用して設定できます.
独自のアクセスキー、secretアクセスキーを設定する方法
dotv環境変数の設定
終わります.とても簡単です...
Multier-s 3ミドルウェア設定
const multer = require("multer");
const multerS3 = require("multer-s3");
const aws = require("aws-sdk");
const s3 = new aws.S3();
module.exports = {
uploadAvatarS3: multer({
storage: multerS3({
s3,
bucket: "버킷 이름",
acl: "public-read",
}),
}),
};
ACLはアクセス制御リストの略で、ファイルの権限を設定します.公式文書によると、所有者はすべての権限を持ち、外部の人は読書権限しかない.本書の所有者がBucket ownerかNode Serverかは不明ですが、まずpublic-readに設定します.テスト
ルータの作成
postsRouter
.route("/posts/s3")
.post(uploadAvatarS3.single("test"), (req, res) => {
console.log(req.file);
return res.send({ message: "하하하" });
});
まずS 3にファイルがあるかどうか見てみましょう.req.fileの形態が変化したかどうかを調べるテストapiが作成されました.
API呼び出し結果
apiはinsomiaを簡単に呼び出した.ビューの作成が面倒...
既存のMultierでのreqfile.pathはreqfile.位置が入れ替わりました.
Reference
この問題について([AWS]置換ファイル格納(S 3)), 我々は、より多くの情報をここで見つけました
https://velog.io/@goatyeonje/파일-저장소-이관
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
postsRouter
.route("/posts/s3")
.post(uploadAvatarS3.single("test"), (req, res) => {
console.log(req.file);
return res.send({ message: "하하하" });
});
Reference
この問題について([AWS]置換ファイル格納(S 3)), 我々は、より多くの情報をここで見つけました https://velog.io/@goatyeonje/파일-저장소-이관テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol