Tải tệp lên google drive bằng python

Tôi điều hành một trang web địa phương dành cho sinh viên Algeria để tìm tài liệu của họ trực tuyến, một vấn đề lớn mà tôi gặp phải là rất nhiều tài liệu này đã có trên Google Drive và tôi cần một cách để tải xuống, tải lên lại, sắp xếp và chia sẻ chúng trên . Tôi cũng cần thêm từng liên kết của các tệp này vào cơ sở dữ liệu của mình, hơn 600 tài liệu

Tôi là một người lười biếng, ghét làm những công việc lặp đi lặp lại, nhưng vâng, tất cả chúng ta đều ghét làm việc này, nó thật nhàm chán, thực sự khá nhàm chán. Hãy tưởng tượng nếu bạn phải tải hình ảnh có mẫu nhất định trong tên của chúng mỗi giờ lên Drive, hoặc

Giới thiệu API Google Drive

Google có một API tuyệt vời dành cho Drive, ban đầu có thể khá khó để hiểu cách thức hoạt động của nó, nhưng bạn không cần biết cách thức hoạt động, chúng tôi sẽ sử dụng trình bao bọc để giúp mọi việc dễ dàng hơn nhiều. PyDrive

Trước khi bắt đầu sử dụng Google Drive API hoặc PyDrive, bạn cần tạo một dự án trong Google Developers Console, đây là nơi Google sẽ liên kết tài khoản của bạn với API, cung cấp cho bạn các khóa để xác thực và theo dõi tốc độ sử dụng của bạn

Đăng ký bảng điều khiển dành cho nhà phát triển bằng tài khoản google của bạn, trên thanh công cụ, bạn sẽ tìm thấy dropbox để chọn dự án, hiện tại bạn không có dự án nào nên nó sẽ yêu cầu bạn tạo một dự án.

Đặt tên cho nó, nếu bạn có một tổ chức như công ty hoặc trường đại học của bạn, hãy chọn nó. Đừng lo lắng nếu bạn không có, nó sẽ không thay đổi bất cứ điều gì đối với chúng tôi

Bây giờ bạn sẽ được chuyển hướng đến bảng điều khiển dự án của mình, nếu có thông báo lỗi cho bạn biết rằng bạn không có bất kỳ dự án nào, chỉ cần chuyển đến thanh công cụ màu xanh lam, chọn dự án của bạn từ đó

Trang tổng quan của bạn phải trống, bạn cần chọn API bạn muốn kích hoạt cho dự án của mình, chúng tôi chỉ cần API Google Drive, nhưng nếu lần sau bạn muốn chơi với Youtube, Maps, Gmail hoặc bất kỳ Ứng dụng Google nào khác, bạn có thể kích hoạt

Để kích hoạt Drive API, hãy nhấn vào menu burger trên thanh công cụ và chọn ‘APIs and Services’, sau đó chọn Dashboard

Kích hoạt API cho bảng điều khiển dành cho nhà phát triển của Google

Tìm kiếm các API bạn cần kích hoạt

Chỉ cần nhập Drive vào thanh tìm kiếm và nhấp vào liên kết để truy cập trang của API, khi ở đó, hãy bật nó

Khi bạn kích hoạt nó, bạn sẽ được đưa đến một màn hình mới

Tại đây, bạn sẽ thấy số liệu thống kê về lệnh gọi API của mình, đã đến lúc tạo khóa ứng dụng và API của chúng tôi, chúng tôi sử dụng các khóa đó khi thực hiện lệnh gọi API để có thể liên kết lệnh gọi với tài khoản của chúng tôi, do đó kiểm soát ổ đĩa của chúng tôi từ mã của chúng tôi

Chúng tôi chưa viết bất kỳ mã nào, vì chúng tôi cần tất cả thiết lập này trước khi bắt đầu, hãy kiên nhẫn với tôi bây giờ, bước tiếp theo sẽ là bước cuối cùng trước khi chúng tôi nhúng tay vào mã

Nhận khóa API

Điều này khá quan trọng đối với bất kỳ API Google nào bạn sẽ sử dụng, đối với mỗi API, bạn sẽ cần một số khóa, không chỉ dành cho Google API, ngay cả đối với Reddit, Twitter, Facebook và một số sản phẩm khác

Để lấy các khóa này, hãy truy cập Thông tin xác thực [nằm trên thanh bên] và nhấn nút “Tạo thông tin đăng nhập”, bạn sẽ có một danh sách gồm 3 tùy chọn

  1. Mã API. Việc chọn cái này sẽ chỉ cho phép bạn truy cập tài khoản drive ứng dụng của mình mà thôi
  2. ID khách hàng. Đây là cái bạn cần trong trường hợp bạn đang xây dựng một ứng dụng web nơi người dùng có thể liên kết tài khoản drive của họ, điều này cho phép bạn truy cập vào tài khoản người dùng khác theo sự đồng ý của họ
  3. tài khoản dịch vụ. cái này chỉ trong trường hợp bạn có một số loại dịch vụ web đang chạy trên máy chủ và giao tiếp với các máy chủ khác

Chúng tôi cần tài khoản thứ 2, ngay cả khi bạn chỉ muốn truy cập tài khoản drive của riêng mình, vì tài khoản đầu tiên cho phép bạn truy cập tài khoản drive ứng dụng khác với tài khoản của chính bạn

Nhưng trước khi làm điều đó, chúng tôi cần đặt tên cho ứng dụng của mình, chuyển đến 'Màn hình chấp thuận OAuth' và đặt tên cho ứng dụng trong trường 'Tên sản phẩm'

Bây giờ, hãy quay lại tab đầu tiên và tạo ID khách hàng, bạn sẽ phải chọn loại ứng dụng, chỉ cần chọn khác vì đây sẽ là tập lệnh cho mục đích sử dụng cá nhân của chúng tôi

Bây giờ bạn sẽ được đưa trở lại tab thông tin xác thực, lần này bạn có ID ứng dụng khách và bí mật ứng dụng khách, cả hai điều này đều quan trọng để xác thực ứng dụng của chúng ta thông qua Python

Ghi chú. Bạn có thể giao tiếp ID ứng dụng khách, nhưng bạn luôn cần giữ khóa bí mật của ứng dụng khách cho mình, vì vâng, bạn đã đoán ra rồi. điều đó là bí mật

Như tôi đã hứa, phần thiết lập đã xong, đã đến lúc chuyển sang mã

Mã Bé, Mã

Tôi biết sẽ mất một chút thời gian để thiết lập bảng điều khiển của chúng tôi đúng cách, nhưng điều này là do tính phức tạp và quy mô lớn của Drive cũng như sức mạnh của API của nó

Bây giờ chúng ta hãy bắt đầu viết mã, như tôi đã viết trước đó, chúng ta sẽ không sử dụng API trực tiếp vì điều này sẽ tốn rất nhiều thời gian và công sức, thay vào đó chúng ta sẽ sử dụng một trình bao bọc đẹp mắt trong python. PyDrive

Phần thưởng biệt ngữ. Trình bao bọc chỉ có nghĩa là một thư viện có một bộ chức năng nâng cao để xử lý các lệnh gọi API và giúp sử dụng dễ dàng hơn thông qua một ngôn ngữ nhất định

Cài đặt PyDrive

Để cài đặt PyDrive, chúng tôi sẽ sử dụng trình quản lý gói python. pip, để cài đặt bất kỳ gói python nào thông qua pip, chỉ cần nhập thông tin sau vào thiết bị đầu cuối của bạn. pip install module_name , vì vậy đối với PyDrive, nó chỉ là. pip install PyDrive

Bây giờ bạn đã cài đặt phiên bản ổn định mới nhất của PyDrive, nó cũng sẽ cài đặt mô-đun máy khách google api cho python

Kết nối với Google Drive bằng PyDrive

Bước đầu tiên trước khi sử dụng tài khoản ổ đĩa thông qua chương trình của bạn là đăng nhập vào tài khoản đó, PyDrive đã làm điều này cực kỳ dễ dàng

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
import os
g_login = GoogleAuth[]
g_login.LocalWebserverAuth[]
drive = GoogleDrive[g_login]

2 dòng đầu tiên nhập lớp GoogleAuth từ PyDrive. Mô-đun xác thực và lớp GoogleDrive từ pydrive. ổ đĩa, chúng tôi tạo một đối tượng để xử lý xác thực. Điều kỳ diệu xảy ra ở dòng thứ 5

with open["path_to_your_file","r"] as file:
#do something here with file
0 sẽ kích hoạt trình duyệt của bạn và điều hướng đến trang đăng nhập google, chọn tài khoản bạn muốn truy cập trong chương trình của mình, cấp quyền cho ứng dụng và bạn sẽ được chuyển đến một trang nói rằng

Dòng cuối cùng tạo đối tượng Google Drive để xử lý việc tạo file và upload lên drive, chúng ta cần truyền đối tượng

with open["path_to_your_file","r"] as file:
#do something here with file
1 cho constructor để kiểm tra xác thực có thành công không

Bây giờ bạn đã được xác thực thành công, đã đến lúc bắt đầu chơi với API

Tải tệp lên tài khoản Drive

Đã đến lúc tải các tệp của chúng tôi lên tài khoản drive của chúng tôi, để làm như vậy, chúng tôi cần tạo một tệp Google drive, điền vào đó nội dung tệp của chúng tôi rồi tải nó lên

Bạn không thể tải tệp trực tiếp lên, trước tiên bạn cần lấy tệp bạn muốn tải lên từ máy tính của mình bằng Python, để làm như vậy, chúng tôi sẽ sử dụng các tính năng IO tệp tuyệt vời của Python, để mở tệp, chúng tôi sẽ sử dụng hàm

with open["path_to_your_file","r"] as file:
#do something here with file
2, gọi nó như thế này

with open["path_to_your_file","r"] as file:
#do something here with file

Điều này sẽ mở một tệp ở chế độ chỉ đọc [đó là chữ “r” trong tham số thứ 2] và gọi nó là

with open["path_to_your_file","r"] as file:
#do something here with file
0

Hãy đọc nội dung của nó, tạo một tệp ổ đĩa mới và cuối cùng tải nó lên

file_drive = drive.CreateFile[{'title':os.path.basename[file.name] }]  
file_drive.SetContentString[file.read[]]
file1_drive.Upload[]

Đảm bảo đặt cái này bên trong khối with

Hãy xem mỗi dòng này làm gì

1- Chúng tôi đang gọi hàm CreateFile trên đối tượng ổ đĩa, điều này tạo ra một tệp hoặc thực thể google drive, tệp google drive [GDF] khá khác so với các tệp thông thường khác, đó là vì nó cũng có thể là một thư mục, GDF là một google . một thư mục, một tài liệu, một hình ảnh, một video…

Lưu ý biểu thức này

with open["path_to_your_file","r"] as file:
#do something here with file
1 điều này cung cấp tên tệp của tệp của chúng tôi mà không có đường dẫn của nó, chúng tôi có thể đã sử dụng
with open["path_to_your_file","r"] as file:
#do something here with file
2 nhưng điều này sẽ bao gồm cả đường dẫn

file = open['path/to/file.txt']
print file.name
# Print path/to/file.txt
print os.path.basename[file.name]
# Print file.txt only

Vì vậy, quay lại chủ đề của chúng ta, chúng ta đã tải thành công một tệp lên tài khoản drive của bạn, bạn có thể thỏa sức sáng tạo chỉ với điều này

Ví dụ: đây là mã nhận tất cả các tệp PDF trong thư mục con có số trong tên tệp của chúng

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
#Login to Google Drive and create drive object
g_login = GoogleAuth[]
g_login.LocalWebserverAuth[]
drive = GoogleDrive[g_login]
# Importing os and glob to find all PDFs inside subfolder
import glob, os
os.chdir["/docs"]
for file in glob.glob["*.pdf"]:
print file
with open[file,"r"] as f:
fn = os.path.basename[f.name]
file_drive = drive.CreateFile[{'title': fn }]
file_drive.SetContentString[f.read[]]
file_drive.Upload[]
print "The file: " + fn + " has been uploaded"

print "All files have been uploaded"

Bài viết đến đây thôi các bạn, hi vọng nó hữu ích, mình sẽ viết một bài khác về cách quản lý quyền, đổi tên file và xử lý thư mục trong drive với Python

Nếu bạn thấy bài đăng này hữu ích, hãy ủng hộ nó, hãy theo dõi tôi để nhận thêm các hướng dẫn tự động hóa python chuyên sâu hơn để trở thành một trình hướng dẫn tự động hóa

Chủ Đề