Я создал код для вставки файла на Google Drive с помощью учетной записи службы в java.file загружается на диск Google, но я не вижу его с помощью веб-браузера. Когда я проверяю файл с помощью кода, я могу получить загруженный файл. как я могу загружать файлы на Google Drive, которые можно просматривать через веб-браузер, используя учетную запись google services в java
пожалуйста, найдите пример кода ниже.
public class PlusServiceAccountSample {
private static final String APPLICATION_NAME = "";
/** E-mail address of the service account. */
private static final String SERVICE_ACCOUNT_EMAIL = "[email protected]" ;
/** Global instance of the HTTP transport. */
private static HttpTransport httpTransport;
/** Global instance of the JSON factory. */
private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
public static void main(String[] args) {
try {
try {
httpTransport = GoogleNetHttpTransport.newTrustedTransport();
// check for valid setup
if (SERVICE_ACCOUNT_EMAIL.startsWith("Enter ")) {
System.err.println(SERVICE_ACCOUNT_EMAIL);
System.exit(1);
}
String p12Content = Files.readFirstLine(new File("XXXXX-privatekey.p12"), Charset.defaultCharset());
if (p12Content.startsWith("Please")) {
System.err.println(p12Content);
System.exit(1);
}
// service account credential (uncomment setServiceAccountUser for domain-wide delegation)
GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
.setServiceAccountScopes(Collections.singleton(DriveScopes.DRIVE))
.setServiceAccountPrivateKeyFromP12File(new File("XXXXXXXX-privatekey.p12"))
.build();
Drive service = new Drive.Builder(httpTransport, JSON_FACTORY,credential).build();
com.google.api.services.drive.model.File file = new com.google.api.services.drive.model.File();
file.setTitle("testdd");
file.setMimeType("application/vnd.google-apps.spreadsheet");
Drive.Files.Insert insert = null;
try {
insert = service.files().insert(file);
file = insert.execute();
} catch (Exception e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
com.google.api.services.drive.model.File uploadedDoc = service.files().get("1ZJnkgFXAiUNSBeq3DmhHGqXn7-v37vLg1UsRekRQNjU").execute();
System.out.println("Title: " + uploadedDoc.getTitle());
return;
} catch (IOException e) {
System.err.println(e.getMessage());
}
} catch (Throwable t) {
t.printStackTrace();
}
System.exit(1);
}
Если вы установите разрешения для файла, вы можете увидеть его в своем обычном аккаунте gmail (раздел "Совместно со мной" ):
Permission newPermission = new Permission();
newPermission.setValue("...your regular [email protected]");
newPermission.setType("user");
newPermission.setRole("reader");
service.permissions().insert(file.getId(), newPermission).execute();
Вы также можете использовать уникальный URL-адрес для доступа к файлу:
System.out.println("Title: " + uploadedDoc.getTitle()+ " "+ uploadedDoc.getAlternateLink());
Возможные значения типа и роли приведены в документах SDK на Google Диске: https://developers.google.com/drive/v2/reference/permissions/insert