공부하기싫어
article thumbnail

내가 지금까지 뭐했는지 모르겠다 ㅋㅋ

로컬에서 돌리던 크롤링 파일을 AWS 에서 돌리려고 알아보던 중

https://kminito.tistory.com/13

 

[Python] 파이썬으로 인스타그램 사진, 동영상 다운받기

개요 파이썬으로 연예인 인스타그램의 사진, 동영상, 글 내용을 다운받는 방법입니다. 원래 셀레늄으로 인스타그램 스크랩하는 방식을 이용하려고 했는데, instaloader라고 하는 진짜 너무 편한 라

kminito.tistory.com

멍청하면 몸이 고생한다고 아 ㅋㅋ

 

 

 

그리고 사진을 리사이징해서 배경화면을 만들어서 제공하는건 포기하고

그냥 특정 셀럽 사진을 모두 모아놓은 사이트를 만들어봐야겠다

훨씬 쉬워졌다

 

지금 고민중인것은 수 많은 이미지들을 어디에 저장할 것인가 인데

아마 S3 혹은 DynamoDB 둘중 하나에 저장할 것 같은데

여기서 문제가 유저들에게 다운로드 기능을 제공하는 것이 제일 중요한데

이걸 어떻게 구현해야 할지 모르겠다

 

는 간단한걸 찾음

https://lionbum.tistory.com/98

 

버튼 클릭시 이미지 다운로드 되는 버튼 만들기

버튼 클릭시 이미지 다운로드 html 신청서나, 양식, 혹은 이미지를 다운 받아야 할경우, 간편하게 쓸수 있는 html 소스 Html 이미지 원본 다운로드 다운로드 할 이미지가 파일이 위치한 경로를 적어

lionbum.tistory.com

S3 내에서 테스트 해봤는데 잘된다

 

  • EC2 구성

instaloader 모듈을 사용해서 구성하려고 했는데 datetime 때문에 안되서 한 3시간 고생하다가 겨우 찾았다

https://github.com/instaloader/instaloader/issues/427

 

--post-filter='date_utc == datetime(2019,10,19)' not working · Issue #427 · instaloader/instaloader

Strange I am trying to download image only of a specific day 10/19/2019 and it brings everyday ... Am I doing something wrong? instaloader --login=? --password=? --post-filter='date_utc == date...

github.com

일단 하루에 한번 그날 올라온 인스타 사진을 ec2에 저장하는데까진 성공했다

 

t3a.micro 로 설정했고

python3 를 설치하고

pip 으로 instaloader 를 설치했다

매일 23시에 코드를 실행해야하기 때문에 date, datetime 으로 컨트롤해줄 예정이고

instaloader 는 커맨드 라인을 os 로 전달해줄 생각이였는데

--post-filter 옵션때문에 좀 고생했다

 

인스타 idpass 랑 awscli 키들은 idpass.py 파일을 따로 만들었다

 

(s3구성 이후)

s3로 파일을 보낼때 자꾸 no such file or directory 가 떳는데

깃허브 찾아보니까 절대경로로 넣어야 한다고 한다

https://github.com/boto/boto3/issues/1992

 

upload_files · Issue #1992 · boto/boto3

[Errno 2] No such file or directory: 'first.jpg' [2019-06-03 14:39:11,576] ERROR::(7 140087973705472)::app[line:1780] - Exception on /ceph/store [POST] Traceback (most recent call last): Fi...

github.com

boto3 모듈을 끌어와서

s3.upload_file() 을 사용해서 버킷에 사진이 들어가는것 까지 확인했다

 

 

  • s3 구성

이제 다운로드 받은 사진을 s3로 보내는걸 하기전에

s3 퍼블릭 설정부터 해보자

 

s3를 퍼블릭 설정해줬고

getobject, putobject 에 대해서 정책설정을 해줬다

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{
    "Version": "2012-10-17",
    "Id": "Policy1663339630158",
    "Statement": [
        {
            "Sid": "Stmt1663339530383",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::fansieve-static-webhosting/*",
            "Condition": {
                "Null": {
                    "s3:x-amz-server-side-encryption": "true"
                }
            }
        },
        {
            "Sid": "Stmt1663339621736",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::fansieve-static-webhosting/*",
            "Condition": {
                "StringNotEquals": {
                    "s3:x-amz-server-side-encryption": "AES256"
                }
            }
        },
        {
            "Sid": "Stmt1663340362824",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::fansieve-static-webhosting/*"
        }
    ]
}
cs

 

sse를 설정해야 업로드 되므로

업로드 시에 aes256 을 암호화 방식으로 추가해줬다

 

예전에 임시로 받아두었던 html 파일들도 모두 옮겨줬다

버킷 앤드포인트

 

버전관리는 하지 않을 생각이다

 

 

  • 오후 할거 정리

일단 제일 중요한건

1. html 프론트 구성

- 메뉴 정리하고, 화면 배치 수정해야 함

2. 이미지 매핑

- 날마다 추가되는 이미지들을 계속 매핑해줘야하기 때문에 ec2 에서 html 스크립트를 자동 수정하는 코드를 짜봐야 할 것 같다

- 사진들은 인스타 피드와 비슷하게 3행 아니면 4행으로 배열해서 스크롤 할 수 있게 하고싶다

3. modal pop-up 만들기

- 사진을 클릭하면 인스타처럼 pop up 이 뜨게 하고싶음

4. 다운로드 버튼 추가

- pop up 이 뜨면 그 밑에 다운로드 버튼까지 추가

5. 도네이션? 펀딩 연결

- 이걸 예약 인스턴스로 바꿀지 잘 모르겠는데 일단 ec2 유지비용 + 인스타 이미지를 가져올때 데이터 전송 비용이 들기 때문에 이부분을 유저들에게 설명하고 최소한의 도네를 부탁하는 식으로 만들어 보자

- 이건 17일 이후에 해보자

 

이건 내일 해볼껀데

https://new93helloworld.tistory.com/135

 

[Web] modal pop-up 만들기

 modal pop-up 만들기 버튼이나 사진을 클릭 했을때 튀어나오는 나오는 화면을 modal pop-up 이라고 한다. 쉽게 말해서, 인스타그램이나 페이스 북에서 사진을 클릭 했을 때, 화면 전환 없이 해당 페이

new93helloworld.tistory.com

사진을 띄우고 다운로드 버튼을 같이 노출시킬 팝업 만드는 법이다

 

 

이 글을 쓰는 지금이 오전 6시인데

술마시고 밤샌거라 일단 조금 자고

일어나서 저거 다 해보자

그리고 추가로 넣고싶은 기능들이 있는데

1. 검색기능

- db에 저장하는게 아니라 잘 될지는 모르겠다 php로 만들어야하려나?

2. 인스타그램 프로필

- 맴버들 인스타 프로필만 띄워보고싶은데 그런 api 가 있는지도 ㅁ?ㄹ

3. 스토리 쇼츠 저장 페이지

- 비디오라 부담되는데 재밌을듯하다

 

일단 여기까지

한 4시간 정도 자고 일어나서 다시 하자

오늘 자정까지 제출이니깐