You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Google Drive API上传文件并获取文件公开访问URL

解决方案

你现在的代码已经可以获取到webViewLink,但默认上传的文件是私有权限,就算拿到链接其他用户也无法访问,需要先给文件设置公开可读权限,再把链接渲染到页面即可,具体修改如下:

1. 调整上传接口的返回字段

把上传请求的url参数里的fields调整为同时返回文件ID,方便后续调用权限接口:
原来的url是
https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart&fields=webViewLink
修改为
https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart&fields=id,webViewLink,webContentLink

补充:webContentLink是文件的直接下载链接,可根据需求选择使用

2. 修改上传成功的回调函数,增加权限设置和链接展示逻辑

把原来的success回调替换为以下代码:

success: function (data) {
    console.log(data);
    const fileId = data.id;
    const webViewLink = data.webViewLink;
    // 先给文件设置公开可读权限
    $.ajax({
        type: "POST",
        beforeSend: function(request) {
            request.setRequestHeader("Authorization", "Bearer " + localStorage.getItem("accessToken"));
            request.setRequestHeader("Content-Type", "application/json");
        },
        url: `https://www.googleapis.com/drive/v2/files/${fileId}/permissions`,
        data: JSON.stringify({
            role: "reader",
            type: "anyone"
        }),
        success: function() {
            // 权限设置成功后,把链接渲染到页面
            // 你可以提前在页面上准备一个用来展示链接的容器,比如<div id="public-url-container"></div>
            $("#public-url-container").html(`
                <p>上传成功,公开访问链接:<a href="${webViewLink}" target="_blank">${webViewLink}</a></p>
            `);
        },
        error: function(err) {
            console.log("权限设置失败:", err);
        }
    });
},

3. 可选调整

如果不需要让用户进入Google Drive预览页面,只要直接下载链接,就把上述代码里的webViewLink替换为webContentLink即可。

内容的提问来源于stack exchange,提问作者Alex Thomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:51:04