# 이 코드 템플릿은 SDT Cloud 환경에서 s3에 파일을 업로드하는 MQTT 메세지를 발행하는 코드입니다. # 패키지 설치 - 코드는 sdtclouds3, sdtcloudpubsub 패키지를 사용합니다. 아래 명령어로 패키지를 다운로드 해야합니다. ```bash $ pip install sdtclouds3 sdtcloudpubsub ``` # 환경 셋팅 - 코드를 실행하기 전에, 장비에 sdtcloud 로그인 작업을 수행해야 합니다. ```bash sudo bwc-cli login ``` # 코드 작성 ## s3 코드 작성 - 코드는 runAction 함수에서 동작하고자 하는 기능을 작성합니다. - uploadFile 변수는 s3에 업로드할 파일의 위치입니다. 반드시 파일의 위치와 파일명을 함께 작성해야 합니다. ```bash uploadFile = "filepath/text.txt" ``` - 업로드가 완료되면 파일의 URL 값이 반환됩니다. ```bash result = sdtcloudClient.uploadData(uploadFile) print(result) ---------- https:///path/text.txt ``` - 만약 업로드하는 파일이 PNG 파일이며, URL를 클릭했을 때 이미지가 바로 보이도록 설정하고 싶다면 다음과 같이 수정합니다. ```bash result = sdtcloudClient.uploadData(uploadFile, {“ContentType”: “image/png”}) ``` - 이외에 여러 옵션이 있으므로 [참고 페이지](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-uploading-files.html)를 클릭하세요. ## mqtt 코드 작성 - 다음 변수로 메세지를 발행하는 코드를 작성하면... ```bash msg = { "message": "Hello World", "uploadFile": result } ``` - 실제로 발행되는 메세지은 다음과 같습니다. ```bash msg = { "data": { "message": "Hello World", "uploadFile": "https:///path/text.txt" }, "timestamp": 12312311... } ```