S3 방식 이미지, 오디오 클라로 넘겨주는 방법
이미지 쪽->
결론: 걍 아마존 s3 파일 주소를 집적 주면 된다.
하지만 indj 서버 구조는 페이크용 api 주소를 한번 거치기 때문에
페이크용 api->리다이렉트 방식으로 가면 끝이다.
channel.controller.js
router.route("/image/:type/:filename").get(async (req, res, next) => {
const imagePath = `${config.file.path}/image/${
req.params.type
}/${encodeURIComponent(req.params.filename)}`;
res.redirect(imagePath);
config.file.path 부분엔 s3 메인 베이스 주소를 넣어주면 된다.
오디오 쪽->
이미지와 마찬가지로 걍 아마존 오디오 파일 주소를 주면 된다
페이크 api를 한번 거지기 때문에 마지막 api 종점지에서
send(filePath) 이렇게 하면 걍 문자열을 던져 주기 때문에
강제로 aws S3 파일 주소로 이동시키게 하면 끝이다.
playtime skip은 App player가 s3 쪽으로 보내면 s3가 알아서 처리해준다
music.controller.js
router.route("/file").get(async (req, res, next) => {
// 파일 읽기
let filePath = `${config.file.path}/audio/high/${encodeURIComponent(
file[0].file.split("_album")[0]
)}.mp3`;
let folderPath = `audio/high/${encodeURIComponent(
file[0].file.split("_album")[0]
)}.mp3`;
if (!(await awsFileExists.getFileFromS3(folderPath))) {
/*
filePath = `/home/server/client/file/music/audio/mp3/${
file[0].file.split("_album")[0]
}.mp3`;
*/
filePath = `${config.file.path}/audio/mp3/${encodeURIComponent(
file[0].file.split("_album")[0]
)}.mp3`;
folderPath = `audio/mp3/${encodeURIComponent(
file[0].file.split("_album")[0]
)}.mp3`;
if (!(await awsFileExists.getFileFromS3(folderPath))) {
mMusic.notFoundMusic(`${file[0].file.split("_album")[0]}`);
return res.json({
success: false,
reason: "음악 파일을 찾을수 없습니다",
});
}
}
res.redirect(filePath);
댓글
댓글 쓰기