공부하기싫어
article thumbnail

안드로이드 안에서 api 를 이용한 기본적인 dynamoDB 입출력을 성공했으니

다음 스텝으로 이미지파일을 db에 저장하고, 불러오는 작업을 해보자

 

  • 새 엑티비티 생성

기존꺼 지우면서 하기 귀찮으니까 지금 화면에서 버튼하나랑 액티비티를 하나 더 만들어서 넘어갈 수 있게 해줘야겠다.

button

저 버튼을 누르면 새로운 화면으로 넘어갈 수 있게 intent 해준다

intent
intent to ImageUpload

이미지를 업로드 하는 임시 액티비티를 만들어 줬다.

아래에 send to server 버튼도 하나 새로 만들어 줬다.

 

 

 

  • 이미지 서버로 보내기

보내는 것부터 해보자

 

https://opheliesaysone.tistory.com/30

 

안드로이드에서 서버로 데이터 전송하기

일단.. 이 포스팅을 쓰기까지 굉장히 험난했다.. retrofit 관련해서 온갖 유투브 영상들, 공식 문서들, 블로그 포스팅들을 참고하였으나, 내가 진행하는 프로젝트와 정확히 일치하는 정보는 없었기

opheliesaysone.tistory.com

 

https://velog.io/@dev_thk28/Android-Retrofit2-Multipart%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-Java#%EB%8B%A8%EC%9D%BC-file

 

[Android] Retrofit2 Multipart사용하기 (Java)

Multipart 사용하기

velog.io

 

일단 이미지를 서버로 보내는 방법을 검색했을때 그렇게 쉽게 찾아지지는 않았다.

 

https://velog.io/@serinyoon/AWS-Lambda-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-S3-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%9D%BD%EC%96%B4%EC%98%A4%EA%B8%B0#1-aws-s3-bucket-%EC%83%9D%EC%84%B1

 

[AWS] Lambda 이용하여 S3 데이터 읽어오기

AWS Lambda 이용하여 S3 데이터 읽어오기

velog.io

 

일단 여기저기서 유용할만한 링크들을 가져왔는데

s3 가 뭐냐

https://shin-bugkiller.tistory.com/entry/AWS-EC2-RDS-S3%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90

 

AWS EC2, RDS, S3에 대해 알아보자.

목차 1. 소개 2. AWS EC2, RDS, S3에 대해 알아보자. 1. 소개 "클라우드 컴퓨팅에 대해 알아보자" 포스팅에서 클라우드 컴퓨팅에 대해 알아보았다. 이 중 IaaS 유형인 AWS를 이용하여 클라우드 컴퓨팅

shin-bugkiller.tistory.com

AWS S3에 대해 알아보자.

S3 (Simple Storage Service)는 아마존 웹 서비스에서 제공하는 API를 통한 인터넷 규모의 스토리지 웹 서비스이다.
AWS에서 제공하는 일종의 파일 서버이다.
파일 서버는 서비스 운영에서 어떤 파일을 저장하고, 저장된 파일을 필요한 사람에게 제공하는 역할을 한다.
S3에서는 파일이라는 표현이 아니라 객체라고 표현한다.

 

라고 블로거 분께서 설명해주셧다.

그럼 나는 어차피 NoSQL 을 파일서버대용으로 사용하고있으니까

굳이 S3로 이용하진 않아도 될것 같다.

 

근데 검색 더 해보니까

왜 다

왜 다 s3 로 하시지..

단순 파일서버라서 더 접근성이 좋은걸까

흠...

 

https://beomi.github.io/2017/12/07/Deploy-Tensorflow-Keras-on-AWS-Lambda/

 

AWS Lambda에 Tensorflow/Keras 배포하기 - Beomi's Tech blog

2017-12-07 AWS Lambda에 Tensorflow/Keras 배포하기 Update @ 20190306: amazonlinux:latest 버전이 2버전이 latest로 변경됨에 따라 아래 코드를 amazonlinux:1로 변경 이번 글은 macOS을 기반으로 작성되었지만, docker 명령

beomi.github.io

일단 이분 글을 보니 

이미지를 가져와서 수정한다음 다시 내보내는 방법이 잘 나와있는데

일단 문제는 '어떻게' 이미지를 올릴 것이냐 인데

 

일단 검색해서 잘 나오는 방법이 S3 를 이용하는 방법인데

이러면 dynamoDB 를 이용할 이유는 없게 된다.

어차피 스토리지에서 바로 lambda 로 파일을 불러와서 수정하면 되니까

그런데 문제는 그 파일을 변환하고 반환했을때

사용한 파일을 지워야 하는데

이걸 aws cli 로 할 수 있다고 하는데

한국 지역에서 이용할 수 없다고 나옴...

aws cloudshell

그래서 일단은

안드로이드에서 api 를 통해서 lambda 로 접근해서 이미지파일을 dynamoDB에 업로드 한 후

lambda 안에서 이미지파일은 dot 화가 되어 dynamoDB에 새로 저장되고

저장된 새 파일을 안드로이드로 다시 반환 한 후

2개의 파일을 지우는 플로우 가 되도록

먼저 한번 알아봐야겠다.

이게 안된다면

뭐..

다른 방법을 찾아봐야겠지

대충

이정도 흐름인데

 

 

일단 오늘은 여기까지 하고

 

무슨 정보찾는데만 거의 3시간 걸려서

 

내일은 본가가는데 일본사이트 코드 분석이랑 그리고 이미지파일을 어떻게 안드로이드 - 서버 로 통신할 수 있는지

알아봐야겠다.

 

 

 

이거는 혹시나 라이브러리들이 lambda 안에서 안돌아갈때 쓰려고 링크 둔거

https://sulmasulma.github.io/data/2020/06/24/aws-lambda-with-external-library.html

 

AWS Lambda에서 외부 라이브러리 사용하기

Data Analysis

sulmasulma.github.io