Line Notify와 Dropbox API로 서버리스 감시 카메라 (서버 편)

쇼핑 카메라



쇼핑에서 돌아오면, "마침내 우유를 사고 싶었다"고 말해 버리는 것은 자주 있는 사고로, 집에서는 이것을 줄이기 위해, 사지 않으면 안되는 것은, 냉장고에 붙인 화이트 보드에 써 두고, 사면 사라지기로 하고 있습니다.

이 내용, 외출처에서 보고 싶네요, 라는 것으로, 냉장고의 쇼핑 메모를 LINE에 투고해 주는 편리 카메라를 만들었습니다.

시판의 감시 카메라적인 것을 사용해 만드는 것도 생각했습니다만, 그것이라고
* 스마트 폰에서 제대로 볼 수 없거나
* 패스워드를 가족 모두에게 기억해 주거나, 있을 수 없지?
* 이동 중에 브라우저를 시작하여 카메라를 보거나 괜찮습니까? 시대는 PUSH형

그래서 Raspberry Pi로 만든 카메라에서 LINE NOTIFY 경유로 LINE에 투고하게 했습니다. 가족 그룹에 LINE NOTIFY를 추가했기 때문에 쇼핑 메모가 업데이트될 때마다 LINE에 이미지가 전송됩니다.



LINE NOTIFY에 이미지를 게시하는 이점



프로그램에서 LINE에 메시지를 보낼 수 있는LINE NOTIFY은 URL을 붙이면 이미지를 첨부할 수 있습니다.



이렇게 게시된 이미지는 LINE 측에서 캐시해 주므로 게시 후 서버의 파일을 삭제해도 LINE 앱에서는 계속 볼 수 있습니다.

인터넷상에 감시 카메라적인 것을 공개하면, 누가 보는지 모른다(그러므로 인증의 구조를 만들어야 한다=만드는 분도 사용하는 분도 귀찮게 )라고 하는 문제가 발생합니다만, 신속하게 파일을 삭제하면 불필요한 사람이 볼 수 있는 위험을 최소화할 수 있습니다. 삭제하기 전에 볼 수있는 가능성은 0이 아니지만 가정의 쇼핑 메모에는 충분합니다.

Dropbox API로 이미지 게시



하지만 인터넷에 WEB 서버를 공개하면 파일을 훔칠 수 있는 위험뿐만 아니라 WEB 서버에 대한 공격도 우려됩니다.

Dropbox에는 저장된 파일을 인터넷에서 볼 수 있도록 공유하는 기능이 있습니다. 특정 사용자만 공유하거나 무인증으로 누구나 볼 수 있도록 하는 등 몇 가지 패턴이 있습니다.

통상의 공유 기능이라면, 취득할 수 있는 URL은 한 번 쿠션 페이지를 사이에 두므로, LINE에 투고하는 용도에는 잘 사용할 수 없습니다.



하지만 시간을 구분하여 파일을 공개한다. 이 URL은 4 시간 내에 자동으로 비활성화되는 것도 좋은 느낌입니다

get_temporary_link을 사용하면 Ruby에서 쉽게 실행할 수 있습니다.
    client = DropboxApi::Client.new(access_token)
    file = IO.read(filename)
    upload_filename = Time.now.strftime('/%Y%m%d_%H%M%S.jpg')
    client.upload(upload_filename, file)
    client.get_temporary_link(upload_filename).link

요약



LINE NOTIFY와 Dropbox API를 결합하여 인터넷에 공개하는 코드를 작성하지 않고 제한된 사용자만 카메라의 영상을 볼 수 있는 구조를 구축할 수 있었습니다.

카메라 측의 세부 사항은 또한 한동안.

dropbox api gem

좋은 웹페이지 즐겨찾기