我已经创建了代码,使用java中的服务帐户将文件插入到google drive。文件已上传至google drive,但我无法使用网络浏览器查看。当我使用代码检查文件时,我可以检索上传的文件。我的问题是,如何使用java中的google services帐户将文件上传到google drive,以便通过网络浏览器查看
请在下面找到示例代码。
public class PlusServiceAccountSample {
private static final String APPLICATION_NAME = "";
/** E-mail address of the service account. */
private static final String SERVICE_ACCOUNT_EMAIL = "XXXXXXXX@developer.gserviceaccount.com" ;
/** 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 username...@gmail.com");
newPermission.setType("user");
newPermission.setRole("reader");
service.permissions().insert(file.getId(), newPermission).execute();
您还可以使用唯一的url访问文件:
System.out.println("Title: " + uploadedDoc.getTitle()+ " "+ uploadedDoc.getAlternateLink());
类型和角色的可能值在Google Drive SDK文档中:https://developers.google.com/drive/v2/reference/permissions/insert
问题内容: 我已创建代码以使用Java中的服务帐户将文件插入到Google驱动器中。文件已上传到Google驱动器中,但我无法使用网络浏览器看到它。当我使用代码检查文件时,我可以检索上载的文件。我的问题是我将文件上传到Google驱动器,可以使用Java中的Google Services帐户通过网络浏览器查看文件 请在下面找到示例代码。 问题答案: 如果您设置了文件权限,则可以在常规的gmail帐
我正在构建一个功能,将文件从我的web应用程序上传到我的客户google drive。我不希望应用程序对用户进行身份验证。谁曾经上传过我文件中的任何文件?我想上传到我客户的谷歌硬盘。 我假设服务帐户是用于此目的的帐户。我说得对吗? 当我使用以下代码上传文件时,它会成功上传,但在“我的驱动器”下不可见。然后我添加了一个权限,基本上与我的gmail帐户共享该文件。然后它在“与我共享”部分可见。 我希望
是否可以使用server1将文件上传到server2? 访客请访问:我的网站。com(server1) 然后他将一个文件上传到server1,server1会自动将该文件上传到server2?? 或者简单地说,用户可以使用server1作为代理将文件上传到server2,因为server2只能从server1访问 会有帮助吗,还是有其他更好的解决方案?
编写一个应用程序,该应用程序将抓取用户上传的打包zip文件的上传目录,并在Google for Work共享的Google Drive文件夹中重新创建压缩目录结构。 问题:共享文件夹对在工作域中创建的服务号不可访问或不可见。代码在C#中。我希望我只是错过了一些愚蠢的东西。 详细信息:以域管理员帐户登录。进入谷歌api控制台,启用api,创建一个服务帐户,授权访问该服务帐户的电子邮件。通过API和服
我有一个将文件上传到服务器的api。我需要让iphone成为一个将文件从dropbox传输到服务器的应用程序。 我的问题是,我是否需要将文件从dropbox/box帐户下载到iphone,然后使用api上传到我的服务器? 或者我可以跳过将文件下载到设备并直接从dropbox/box帐户上传到自定义服务器的过程吗? 或者可以选择在iphone和dropbox之间只同步少数文件,然后将文件的本地副本上