2017-09-16 153 views
0

我使用Android代码将图片文件上传到谷歌驱动器。我想要的是获取我上传文件的可分享链接。下面是我的代码上传文件,上传文件到谷歌驱动器的可分享链接在Android中

OutputStream outputStream = driveContents.getOutputStream(); 
Bitmap image = MediaStore.Images.Media.getBitmap(MainActivity.this.getContentResolver(), uri); 
ByteArrayOutputStream bitmapStream = new ByteArrayOutputStream(); 
image.compress(Bitmap.CompressFormat.PNG, 100, bitmapStream); 
outputStream.write(bitmapStream.toByteArray()); 
MetadataChangeSet changeSet = new MetadataChangeSet.Builder() 
     .setTitle(imgFile.getName()) 
     .setMimeType("image/jpeg") 
     .setStarred(true).build(); 

// create a file in root folder 
Drive.DriveApi.getRootFolder(mGoogleApiClient) 
     .createFile(mGoogleApiClient, changeSet, driveContents) 
     .setResultCallback(fileCallback); 

(URI是SD卡路径在上面的代码我的图像文件。)

我在下面的回调得到结果,

final private ResultCallback<DriveFolder.DriveFileResult> fileCallback = new 
    ResultCallback<DriveFolder.DriveFileResult>() { 
     @Override 
     public void onResult(DriveFolder.DriveFileResult result) { 
      if (result.getStatus().isSuccess()) { 
       Toast.makeText(MainActivity.this, "File uploaded.", Toast.LENGTH_SHORT).show(); 
       clipboard.setPrimaryClip(clip); 
      } 
      return; 
     } 
    }; 

请帮助我获得我上传文件的链接。

回答

0

这是关系到你的查询中SO post

从谷歌驱动器下载文件:

下载通过链接谷歌云端硬盘文件,试试这个(从this tutorial):

https://drive.google.com/uc?export=download&id=FILE_ID

只需将FILE_ID替换为在第e Drive URL。

还有一些进一步的阅读也来自同一篇文章。

产生额外的注意事项:

您可以使用DRIVE REST API

要下载文件下载文件,你让授权的HTTP GET请求 文件的资源URL和包括查询参数ALT =媒体。对于 例如:

GET https://www.googleapis.com/drive/v3/files/0B9jNhSvVjoIVM3dKcGRKRmVIOVU?alt=media 
Authorization: Bearer ya29.AHESVbXTUv5mHMo3RYfmS1YJonjzzdTOFZwvyOAUVhrs 

下载文件需要用户具有至少读取权限。 此外,您的应用必须获得允许 读取文件内容的范围授权。例如,使用 drive.readonly.metadata范围的应用将无权下载 文件内容。具有编辑权限的用户可以通过将viewersCanCopyContent字段设置为true来限制 只读用户的下载。