我使用Android代码将图像文件上传到Google云端硬盘。我想要的是获取我上传的文件的可共享链接。下面是我上传文件的代码,
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 :(得分:0)
以下是与您的查询相关的SO post
从Google云端硬盘下载文件:
要通过链接下载Google云端硬盘文件,请尝试此操作(来自this tutorial):
https://drive.google.com/uc?export=download&id=FILE_ID
只需将FILE_ID替换为驱动器中找到的原始文件ID即可 URL。
还有一些进一步的阅读也来自同一篇文章。
Additonal notes:
您可以使用DRIVE REST API
下载文件要下载文件,您需要向其发出授权的HTTP GET请求 文件的资源URL并包含查询参数alt = media。对于 例如:
function findFiles(auth){ var obj ={}; var key = 'files'; obj[key]=[]; var drive = google.drive('v3'); drive.files.list({ auth: auth, folderId: '****************', q: "mimeType contains 'application/pdf' and trashed = false" }, function(err,response){ var f = response.files; if (f.length == 0) { console.log('No files found.'); }else { var i; for (i = 0; i < f.length; i++) { var file = f[i]; //console.log('%s (%s)', file.name, file.id); obj[key].push(file.name + ' ' + file.id); } console.log(obj); return obj; } }); }
下载文件要求用户至少具有读取权限。 此外,您的应用必须获得允许的范围授权 阅读文件内容。例如,使用的应用程序 drive.readonly.metadata范围无权下载 文件内容。拥有编辑权限的用户可以限制下载 通过将viewersCanCopyContent字段设置为true来使用只读用户。