소개
cobbzilla/yuebing: 🥮 Host your own video sharing site
yuebing은 오픈소스 개인 파일 공유 서비스 입니다.
작성자는 google drive와 같은 거대 기업이 자신의 video, image를 사용하는데에 신뢰를 하고있지 않은 듯 합니다.
구글 포토의 기능 중 하나는 사람의 얼굴을 분석해서 특정 사람으로 분류한 사진을 찾아주는 기능이 있습니다.
물론 구글에서 내 개인 사진을 AI 학습에 임의로 사용하지는 않을 것이라는 신뢰가 있어야 이런 서비스가 가능하겠죠?
혹시라도 비슷한 걱정을 하시는 분들이 있다면, yuebing은 좋은 대안이 될 수 있습니다.
yoebing역시 AWS S3 서비스에 기반하고 있지만 암호화를 지원하기 때문에 개인 정보를 임의로 분석하기는 어려울 것이라 생각합니다.
yoebing을 만든 개발자처럼 가족과 개인의 영상을 특별한 가입 절차와 설정 없이 특정 지인과 쉽고 안전하게 공유하고 싶으신 분들은 한번즈음 고민해 볼만한 툴인 것 같습니다.
설치
vue2 nuxt 기반입니다.
로컬에서 돌리기 위해선 redis를 구동해 주어야 합니다.
redis 설치 후, redis-server
로 foreground 실행합니다.
env.example
파일을 .env
로 복사합니다.
yarn install
, yarn dev
명령으로 실행합니다.
s3 to local
혹시 몰라 IAM에서 yoebing 계정을 만들고 s3 read only 권한만을 주었습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*",
"s3-object-lambda:Get*",
"s3-object-lambda:List*"
],
"Resource": "*"
}
]
}
참고로 full access 권한은 다음과 같이 설정합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:*", "s3-object-lambda:*"],
"Resource": "*"
}
]
}
.env
파일에서 YB_DEST_KEY
, YB_DEST_SECRET
, YB_DEST_BUCKET
, YB_DEST_S3_REGION
, YB_ADMIN_PASSWORD
을 설정해 줍니다.
yarn dev
를 수행하면, 중간 중간 S3 쓰기 과정에서 access denied 오류가 납니다.
mobiletto-lite
라는 모듈을 사용합니다.
B2 Cloud Storage: The Lowest Cost On Demand Storage As a Service
b2
, s3
, local
파일 시스템을 지원합니다.
이를 착안하여 YB_DEST_TYPE
값을 local
로 YB_DEST_KEY
값을 tmp
로 설정하고 프로젝트 루트에 tmp
폴더를 만들어 주면 s3 생성 없이 테스트를 해 볼 수 있습니다.
추가로 YB_PUBLIC=true
, YB_ALLOW_REGISTRATION=true
를 설정하여 사용자 등록을 가능하도록 합니다.
Bring up
첫 구동 시, nuxt 프레임워크가 modules/api/index.js
파일을 로드 합니다.
이 파일에서 file storage layer(mobiletto
)를 초기화 하고 설정파일을 로드 합니다.