Soundlly / Study

0 stars 0 forks source link

AWS S3 써보기 (3가지 방법) #16

Open haegol123 opened 7 years ago

haegol123 commented 7 years ago

AWS S3 써보기(3가지 방법)

1. AWS 웹사이트 접속해서 웹 콘솔에서 찾아서 받기


AWS S3 웹 사이트가서 로그인 후 원하는 로그에서 다운로드 버튼 누르고 다운로드 받으면 된다.

웹사이트에서 콘솔에서 받은 Detect Log Download link https://s3-ap-northeast-1.amazonaws.com/soundlly.data/raw_new/2017/10/01/detect/0378a4f0-fb73-4715-b55f-723cb564ad1f/soundlly__0378a4f0-fb73-4715-b55f-723cb564ad1f__detect__5aa86c78b66b-LeKWomSA__20171001T0740%2B09__6__log.gz


다운로드 결과


{
  "netOper": "KT",
  "netType": "wifi",
  "appVer": "07.00.06",
  "kinesisDelay": 1114,
  "sdkType": "receiver",
  "schedVer": "2017.10.01.07.33.09",
  "type": "detect",
  "deviceTime": 1506811307721.275,
  "uuid": "536f756e-646c-6c79-7462-652e6b696d21",
  "osVer": "10.3.3",
  "lastUpdated": 1498721119000,
  "phoneModel": "iPhone7,2",
  "adid": "536f756e-646c-6c79-7462-652e6b696d21",
  "serverAddr": "10.0.0.156",
  "dau": true,
  "sdkVer": "1.1.0f",
  "appKey": "0378a4f0-fb73-4715-b55f-723cb564ad1f",
  "serverTime": "2017-10-01T07:41:48+0900",
  "id": "bzFrlDT8nAA4ehAN",
  "tag": {},
  "retry": 0,
  "remoteAddr": "10.0.0.87"
}

2. AWS CLI 사용해서 terminal 에서 받기(Terminal 에서 AWS CLI 사용하여 custom Log 다운로드 하기)

AWS CLI 사용을 위해 컴퓨터에 설치 및 설정할 사항이 있다.


1.brew 이용하여 AWS CLI 설치: brew install awscli 커맨드 실행
 2.pip 이용 AWS CLI 설치: 아래의 쉘스크립트를 실행
 https://soundlly.atlassian.net/wiki/spaces/SCD/pages/66659770/AWS+S3+OSX 참고



설치 후에 terminal 에서 $aws configure 실행하여 config 파일과 credential 파일도 설정(region, output(format), access key, secret access key)해야 하는데 자세한 사항은 마찬가지로 상단 링크를 참고 하면 된다.


실제 terminal 에서 실행 결과

soundllyui-MacBook-Air:sampleS3 soundlly$ aws s3 cp s3://soundlly.data/raw_new/2017/07/04/custom/6227368d-7a59-4805-a110-24b23e8c87b3 sampleS3/ --recursive
Completed 1.2 KiB/~1.7 MiB (4.4 KiB/s) with ~90 file(s) remaining (calculating..download: s3://soundlly.data/raw_new/2017/07/04/custom/6227368d-7a59-4805-a110-24b23e8c87b3/soundlly__6227368d-7a59-4805-a110-24b23e8c87b3__custom__ip-10-0-1-219__20170704T0000+09__6__log to sampleS3/soundlly__6227368d-7a59-4805-a110-24b23e8c87b3__custom__ip-10-0-1-219__20170704T0000+09__6__log
Completed 1.2 KiB/~1.7 MiB (4.4 KiB/s) with ~91 file(s) remaining (calculating..Completed 7.1 KiB/~2.1 MiB (24.7 KiB/s) with ~96 file(s) remaining (calculating.Completed 7.7 KiB/~2.1 MiB (26.5 KiB/s) with ~96 file(s) remaining (calculating.Completed 8.9 KiB/~2.1 MiB (30.1 KiB/s) with ~96 file(s) remaining (calculating.download: s3://soundlly.data/raw_new/2017/07/04/custom/6227368d-7a59-4805-a110-24b23e8c87b3/soundlly__6227368d-7a59-4805-a110-24b23e8c87b3__custom__ip-10-0-1-219__20170704T0005+09__6__log to sampleS3/soundlly__6227368d-7a59-4805-a110-24b23e8c87b3__custom__ip-10-0-1-219__20170704T0005+09__6__log
……….


3. AWS SDK (python : boto3) 사용해서 프로그램 짜서 받기

Boto3 를 이용하여 파이썬 코드로 schedule 파일 다운로드 하기(v1, v2 format)

Boto3: 파이썬을 위한 AWS SDK, Boto3에는 Python3 지원을 시작해서 이번 출시 버전에서는 Python 2.6.5+, 2.7, 3.3, 3.4 버전에서 충분히 테스트 하였다. 개발자가 소스코드 작성시 AWS 사용에 필요한 기능들을 간단히 쓸 수 있도록 큰 역할을 해준다. 출처:https://aws.amazon.com/ko/blogs/korea/now-available-aws-sdk-for-python-3-boto3/

2번 방법에서의 AWS 설정이 완료된 후에 파이썬 코드를 작성해보면 된다.

파이썬 작성 소스 코드

import boto3
s3 = boto3.resource('s3')
s3.meta.client.download_file('bitsound.sdk.schedule', '6227368d-7a59-4805-a110-24b23e8c87b3/schedule',  'schedule.txt')

이러한 세줄의 간단한 코드로 로컬에서 schedule.txt 라는 파일을 생성하여 s3 로부터 데이터를 불러와 저장할 수 있다.

주의할점은 맨 앞의. Bucket name을 입력하는 인자에 ‘/‘ 가 들어가면 정규식에 어긋나서 인식이 안되므로 가장 상위 버킷하나를 써두고 key 인자에 /를 나열하여 쓰면 된다. Ex) s3.meta.client.download_file('bitsound.sdk.schedule', '6227368d-7a59-4805-a110-24b23e8c87b3/v2/schedule', 'scheduleV2.txt') http://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html#CoreConcepts 에서 Buckets 에 대한 설명 중 상단 참조