drive API Nâng cấp drive one không giới hạn tài khoản dung lượng Xin chào các bạn, trong bài viết này, mình sẽ hướng dẫn cách sử dụng Java để viết các chức năng liên quan đến Google Drive API. Điều này sẽ giúp chúng ta quản lý và sử dụng các tệp trên Google Drive thông qua Google Drive API.
Google Drive API cho phép bạn phát triển các ứng dụng tận dụng lưu trữ đám mây của Google Drive. Bạn có thể tích hợp Google Drive vào ứng dụng của mình và tạo ra những chức năng sử dụng Google Drive.
Hãy cùng xem qua hình ảnh thể hiện mối quan hệ giữa ứng dụng của bạn, Google Drive và Google Drive API:
Google Drive: Là dịch vụ lưu trữ tệp đám mây của Google, cung cấp cho người dùng không gian lưu trữ cá nhân, gọi là My Drive, và tùy chọn truy cập vào các thư mục chia sẻ cộng tác, được gọi là ổ đĩa chung.
Google Drive API: Là REST API cho phép bạn tận dụng bộ nhớ Google Drive từ trong ứng dụng của mình.
Google Drive app: Là ứng dụng sử dụng Google Drive như một giải pháp lưu trữ.
drive API Nâng cấp drive one không giới hạn tài khoản dung lượng
Google Drive UI: Giao diện người dùng của Google để quản lý các tệp được lưu trữ trên Google Drive. Nếu ứng dụng của bạn là một trình chỉnh sửa, chẳng hạn như ứng dụng bảng tính hoặc trình xử lý văn bản, bạn có thể tích hợp với Giao diện người dùng để tạo và mở tệp trong ứng dụng của mình.
My Drive: Vị trí lưu trữ trên Google Drive mà người dùng sở hữu. Các tệp được lưu trữ trên My Drive có thể được chia sẻ với người dùng khác, nhưng quyền sở hữu nội dung vẫn thuộc về người dùng đó.
OAuth 2.0: Là giao thức ủy quyền mà Google Drive API yêu cầu để xác thực người dùng ứng dụng của bạn. Nếu ứng dụng của bạn sử dụng Đăng nhập Google, nó sẽ xử lý luồng OAuth 2.0 và mã thông báo truy cập ứng dụng.
Bạn có thể làm gì với Google Drive API?
Để bắt đầu làm việc với Google Drive API, bạn cần khởi tạo một service account và tạo khóa cho phép service account đó truy cập Google Drive. Thao tác trên Google Drive API sẽ được thực hiện thông qua service account của tài khoản Google của bạn, thay vì trực tiếp từ tài khoản chính. Dưới đây là hướng dẫn để tạo ra .p12 key cho service account, cho phép service account thao tác trực tiếp với Google Drive:
Cuối cùng, lưu lại tệp .p12 và ghi nhớ service account ID của bạn để sử dụng cho thuộc tính google-drive.service-account (sẽ được dùng trong ứng dụng).
Tiếp theo, mình sẽ hướng dẫn bạn cách cấu hình ứng dụng Spring Boot để có thể thao tác với Google Drive.
Thêm dependency vào ứng dụng: Bạn cần thêm các thư viện cần thiết vào ứng dụng của mình để sử dụng Google Drive API.
xml
Sao chép mã
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-drive</artifactId>
<version>v3-rev136-1.25.0</version>
</dependency>
java
Sao chép mã
@Autowired
private GoogleCredential googleCredential;
@Bean
public Drive getService() throws GeneralSecurityException, IOException {
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
return new Drive.Builder(HTTP_TRANSPORT,
JacksonFactory.getDefaultInstance(), googleCredential)
.build();
}
@Bean
public GoogleCredential googleCredential() throws GeneralSecurityException, IOException {
Collection<String> elenco = new ArrayList<>();
elenco.add("https://www.googleapis.com/auth/drive");
HttpTransport httpTransport = new NetHttpTransport();
JacksonFactory jsonFactory = new JacksonFactory();
return new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId("account_service_cua_ban@account_service_cua_ban.iam.gserviceaccount.com")
.setServiceAccountScopes(elenco)
.setServiceAccountPrivateKeyFromP12File(new File("path/to/google-service-key.p12"))
.build();
}
Lưu ý:
account_service_cua_ban@account_service_cua_ban.iam.gserviceaccount.com
là địa chỉ email của service account mà bạn đã tạo khi generate tệp .p12.path/to/google-service-key.p12
là đường dẫn đến tệp .p12 mà bạn đã tải xuống trước đó.Đến đây, bạn có thể dễ dàng thao tác với Google Drive bằng thư viện com.google.api.services.drive.Drive
mà bạn đã khởi tạo Bean ở trên.
java
Sao chép mã
@Autowired
private Drive googleDrive;
Lấy tất cả tệp:
java
Sao chép mã
private List<File> getAllGoogleDriveFiles() throws IOException {
FileList result = googleDrive.files().list()
.setFields("nextPageToken, files(id, name, parents, mimeType)")
.execute();
return result.getFiles();
}
Hàm setFields
chỉ định các trường mà bạn có thể lấy từ tệp nhận được. Ví dụ, khi sử dụng .setFields("files(id, name, parents, mimeType)")
, bạn có thể lấy ID bằng cách sử dụng hàm file.getId()
.
Tạo thư mục mới:
java
Sao chép mã
private String createNewFolder(String folderName) throws IOException {
File fileMetadata = new File();
fileMetadata.setName(folderName);
fileMetadata.setMimeType("application/vnd.google-apps.folder");
File file = googleDrive.files().create(fileMetadata).setFields("id").execute();
return file.getId();
}
Tải lên tệp:
java
Sao chép mã
File newGGDriveFile = new File();
newGGDriveFile.setParents(parents).setName(fileName);
FileContent mediaContent = new FileContent("application/zip", fileToUpload);
File file = googleDrive.files().create(newGGDriveFile, mediaContent).setFields("id,webViewLink").execute();
fileName
là tên tệp sẽ được tải lên Google Drive.fileToUpload
là đối tượng java.io.File
chỉ định tệp sẽ được tải lên Google Drive.FileContent mediaContent = new FileContent("application/zip", fileToUpload);
chỉ định rằng tệp tải lên có định dạng zip.parents
là danh sách ID của thư mục cha mà bạn muốn tải lên.Sau đó, bạn có thể lấy URL của tệp bằng cách sử dụng file.getWebViewLink()
do trước đó bạn đã thiết lập giá trị của webViewLink
trả ra bằng cách setFields("id,webViewLink")
.
Xóa tệp:
java
Sao chép mã
private static void deleteFile(String fileId) {
try {
googleDrive.files().delete(fileId).execute();
} catch (IOException e) {
System.out.println("An error occurred: " + e);
}
}
fileId
là ID của tệp cần xóa trên Google Drive.Tải xuống tệp:
java
Sao chép mã
String fileId = "0BwwA4oUTeiV1UVNwOHItT0xfa4G";
OutputStream outputStream = new ByteArrayOutputStream();
googleDrive.files().get(fileId)
.executeMediaAndDownloadTo(outputStream);
Khi thao tác trên Google Drive, bạn sử dụng tài khoản service. Do đó, các thư mục là của tài khoản service và không có giao diện cụ thể như tài khoản Google chính, vì vậy bạn sẽ không thể xem trực tiếp các tệp bằng Google Drive. Để xem các tệp này, bạn có thể tạo một thư mục trên Google Drive bằng tài khoản Google chính và sau đó chia sẻ quyền cho tài khoản service. Khi đó, ứng dụng của bạn sẽ thao tác trên thư mục đó và bạn có thể vào Google Drive để xem các tệp của mình một cách bình thường.
Bài viết trên chỉ là một phần tìm hiểu về Google Drive API và hướng dẫn cách sử dụng Java để thao tác với Google Drive API. Bạn có thể tham khảo tài liệu Google Drive API V3 để tìm hiểu thêm về nhiều chức năng khác cũng như cách sử dụng các ngôn ngữ khác với Google Drive API. Hy vọng bài viết sẽ hữu ích cho bạn trong học tập và công việc!
Tác giả: bientap3nguyenhuy
Nguồn tin: viblo. asia
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn