Grafana 대시보드 추출 후 구글 드라이브 업로드 방법(2)
두번째 포스팅은 추출한 pdf파일을 드라이브에 자동으로 업로드 하기 위한 인증 설정 방법과 업로드하는 간단한 파이썬 스크립트에 관한 포스팅입니다.
-
구글 자격 증명 설정
먼저 GCP에 접속하여 새프로젝트를 생성하고 OAuth 동의 화면을 구성
-
API 라이브러리에서 Google Drive API 사용
-
사용자 인증 정보 만들기에서 OAuth 클라이언트 ID 생성
로컬PC인 경우 - 데스크톱 클라이언트
리눅스 서버의 경우 - TV클라이언트
생성한 Client 인증 정보가 들어있는 JSON파일은 잘 가지고 있어야함 -
구글 드라이브에 파일을 업로드하는 파이썬 스크립트
/home/ubuntu/daily_report/daily_infra_report/ 경로에 전날 일자를 이름으로 가진 pdf파일을 똑같이 전날 일자를 이름으로 내 드라이브에 업로드하는 스크립트
#!/usr/bin/python3
from googleapiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools
from datetime import date, timedelta
yesterday = date.today() - timedelta(1)
try :
import argparse
flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args()
except ImportError:
flags = None
SCOPES = 'https://www.googleapis.com/auth/drive.file'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
print("make new storage data file ")
flow = client.flow_from_clientsecrets('/home/ubuntu/daily_report/<다운 받은 자격증명파일.json>', SCOPES)
creds = tools.run_flow(flow, store, flags) if flags else tools.run(flow, store)
DRIVE = build('drive', 'v3', http=creds.authorize(Http()))
FILES = (
('/home/ubuntu/daily_report/daily_infra_report/' + yesterday.strftime( 'daily_infra_report_'+'%Y%m%d'+'.pdf')),
)
folder_id = '<내 드라이브 URL중 마지막 암호화된 부분>'
for file_title in FILES :
file_name = file_title
metadata = {'name': yesterday.strftime( 'daily_infra_report_'+'%Y%m%d'+'.pdf'),
'parents' : [folder_id],
'mimeType': None
}
res = DRIVE.files().create(body=metadata, media_body=file_name).execute()
if res:
print('Uploaded "%s" (%s)' % (file_name, res['mimeType']))
이러한 스크립트들을 crontab에 등록해두면 매일 인프라 현황을 체크하지 않아도 보고서로 확인이 가능하니 걱정 없습니다!
Author And Source
이 문제에 관하여(Grafana 대시보드 추출 후 구글 드라이브 업로드 방법(2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jiyeon_hong/Grafana-대시보드-추출-후-구글-드라이브-업로드-방법2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)