Python을 사용하여 Google 드라이브에 파일 업로드

Abid Ullah 2024년2월15일
  1. Python을 사용하여 Google 드라이브에 파일 업로드
  2. Google 드라이브에 파일을 업로드하기 위한 Python 코드
Python을 사용하여 Google 드라이브에 파일 업로드

이 기사에서는 Python을 사용하여 Google 드라이브에 파일을 업로드하는 방법을 설명합니다. 이를 달성하기 위해 Google 드라이브 API를 사용할 것입니다.

따라서 Google 개발자 콘솔로 이동하여 새 프로젝트를 만듭니다. 5~10초 또는 몇 분이 걸릴 수도 있습니다.

Python을 사용하여 Google 드라이브에 파일 업로드

Python은 다양한 용도로 사용할 수 있는 많은 기능과 라이브러리가 있기 때문에 널리 사용되는 프로그래밍 언어입니다. Google 드라이브에 파일을 업로드하는 기능은 서비스 중 하나입니다.

Google 드라이브에 파일을 업로드해야 하는 몇 가지 시나리오가 있습니다. 예를 들어 컴퓨터에 문제가 발생하면 파일을 다른 사람과 공유하거나 백업 복사본을 만들 수 있습니다.

동기가 무엇이든 Python을 사용하여 Google 드라이브에 파일을 업로드하는 것은 간단한 과정입니다. 다음 단락에서는 작업을 수행하는 방법을 보여줍니다.

시작하기 전에 몇 가지를 준비해야 합니다. 먼저 각 컴퓨터에 Python이 미리 설치되어 있어야 합니다.

아직 설치하지 않은 경우 Python 웹 사이트에서 다운로드할 수 있습니다.

다음으로 Google 드라이브에 액세스하려면 먼저 Gmail 계정이 필요합니다. 우리 각자가 Gmail을 사용한다고 가정하겠습니다. 시작하겠습니다.

1단계: Google API 플레이그라운드

Google을 검색하면 Google API Playground에 대한 자세한 정보를 찾을 수 있습니다. 더 나아가려면 첫 번째 링크를 클릭해야 합니다.

Google api 플레이그라운드 검색

첫 번째 링크를 선택하면 자동으로 다음 페이지로 이동합니다.

Google 개발자로 리디렉션

2단계: Google 드라이브 API

Google 개발자 페이지에서 다른 옵션 중에서 드라이브 API로 가는 길을 찾아야 합니다.

드라이브 API 3 옵션을 검색하여 선택합니다. 선택하면 링크 목록이 우리 앞에 나타납니다.

Drive api v3 검색 중

링크 목록에 있는 첫 번째 링크를 선택해야 합니다. 무엇이든 선택하려면 먼저 클릭해야 합니다. 그러면 그 옆에 체크 표시가 나타납니다.

여기에서 첫 번째 링크를 클릭하겠습니다.

Authorize api 클릭

약 3~5초 정도 기다리면 Gmail 계정으로 리디렉션됩니다.

3단계: Gmail 계정

파일을 드라이브에 업로드하려는 Gmail 계정을 클릭한 다음 화면의 지시를 따릅니다. 화면에 취소허용의 두 가지 옵션이 표시됩니다.

계속하려면 드롭다운 메뉴에서 허용을 선택해야 합니다. Google 계정을 클릭하면 Google Auth가 작업을 허용할지 묻습니다.

Gmail 계정 허용

4단계: 인증 코드

마침내 포기하고 허용 버튼을 클릭하면 권한 코드를 검색할 수 있는 새 페이지로 리디렉션됩니다.

코드 인증

반면에 인증 코드가 필요하지 않기 때문에 복사하지 않습니다. 대신 인증 코드를 거래하는 버튼을 클릭하여 토큰에 액세스합니다.

교환 승인 코드 클릭

버튼을 클릭하면 액세스 토큰을 얻을 수 있습니다.

액세스 토큰

Python 코드에서 작업하는 동안 액세스 토큰의 복사본을 만들어 안전한 곳에 저장해야 합니다. Python을 사용하여 Google 드라이브에 파일을 쉽게 업로드할 수 있으며 액세스 토큰이 필요합니다.

Google 드라이브에 파일을 업로드하기 위한 Python 코드

1단계: 라이브러리

먼저 필요한 라이브러리와 모듈을 가져옵니다. 이 경우 JSON요청을 가져와야 합니다.

우리는 파일 업로드를 위해 JSON을 사용하고 파일을 업로드할 수 있도록 API를 요청하기 위해 요청을 사용합니다.

예제 코드:

import json
import requests

2단계: 액세스 토큰

둘째, 사전을 만들고 액세스 토큰을 해당 키 중 하나의 값으로 사용합니다. 이 시나리오에서 인증은 키이고 액세스 토큰은 값입니다.

예제 코드:

headers = {"Authorization": "Bearer Paste your access token here"}

Bearer 뒤에 공백만 있는 액세스 토큰을 복사하여 붙여넣을 수 있습니다.

3단계: 파일 이름

이제 다른 사전을 만들고 업로드하려는 파일에 이름을 지정할 수 있습니다.

예제 코드:

para = {
    "name": "##name for python uploaded file####",
}

4단계: 경로

이제 업로드하려는 파일에 액세스해야 합니다. 이를 위해 파일의 경로를 제공해야 합니다.

Python은 경로를 따라 파일에 도달하여 파일을 엽니다.

예제 코드:

files = {
    "data": ("metadata", json.dumps(para), "application/json; charset=UTF-8"),
    "file": open("Pythonfile.jpg", "rb"),
}

5단계: 요청

이제 Python의 requests 모듈을 사용하여 Google 드라이브 API에 파일 업로드를 요청합니다.

예제 코드:

r = requests.post(
    "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart",
    headers=headers,
    files=files,
)

6단계: 인쇄

이제 위의 모든 단계를 코드 실행과 결합합니다. 궁극적으로 print 문을 사용하여 코드가 작동하는지 확인합니다.

예제 코드:

import json
import requests

headers = {"Authorization": "Bearer Paste your access token here"}
para = {
    "name": "##name for python uploaded file####",
}
files = {
    "data": ("metadata", json.dumps(para), "application/json; charset=UTF-8"),
    "file": open("Pythonfile.jpg", "rb"),
}
r = requests.post(
    "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart",
    headers=headers,
    files=files,
)
print(r.text)

출력:

{
 "kind": "drive#file",
 "id": "1Furfhe8BFbkEhXn1xcYPr8jYAACNpfV7p",
 "name": "##python uploaded image####",
 "mimeType": "image/jpeg"
}

오류 없이 이 출력을 얻으면 코드가 올바르게 작동하고 업로드하려는 파일을 Google 드라이브에 업로드해야 합니다.

7단계: 확인

Google 드라이브로 이동하여 파일이 업로드되었는지 확인할 수 있습니다. 언급된 단계에 따라 파일이 드라이브에 업로드될 것이라고 100% 확신합니다.

이제 Python을 사용하여 Google 드라이브에 파일을 업로드할 수 있습니다. 이 절차를 설정하는 것은 쉽고 몇 분이면 충분합니다.

작가: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn