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

如何使用Java及AccessToken将文件上传至GCP?

使用Java通过Access Token上传文件到Google Cloud Storage

1. 添加依赖

如果使用Maven管理项目,在pom.xml中引入Google Cloud Storage的依赖:

<dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-storage</artifactId>
    <version>2.32.0</version> <!-- 可替换为最新稳定版本 -->
</dependency>

2. 核心上传代码

直接利用已有access token完成身份验证并上传文件:

import com.google.auth.oauth2.AccessToken;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.cloud.storage.BlobId;
import com.google.cloud.storage.BlobInfo;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
import java.io.File;
import java.io.IOException;

public class GcsFileUploader {
    public static void main(String[] args) throws IOException {
        // 替换为你的实际参数
        String accessToken = "你的access token字符串";
        String targetBucket = "目标存储桶名称";
        String gcsFileName = "文件在存储桶中的命名";
        File localFile = new File("本地文件的完整路径");

        // 用access token构建身份凭证
        AccessToken token = new AccessToken(accessToken, null); // 若知道token过期时间,可传入对应的Date对象
        GoogleCredentials credentials = GoogleCredentials.create(token);

        // 初始化GCS存储客户端
        Storage storage = StorageOptions.newBuilder().setCredentials(credentials).build().getService();

        // 构建存储对象信息并执行上传
        BlobId blobId = BlobId.of(targetBucket, gcsFileName);
        BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build();
        storage.create(blobInfo, localFile.toPath());

        System.out.println("文件已成功上传至GCS:" + gcsFileName);
    }
}

关键注意事项

  • Token有效性:确保使用的access token在上传时处于有效期内,若已知过期时间,建议在AccessToken构造时传入对应的过期日期,客户端会自动处理凭证刷新逻辑。
  • 权限检查:确认该access token拥有storage.objects.create权限,否则会返回权限不足的错误。
  • 大文件处理:如果上传大文件,建议使用流式上传方式,通过storage.writer(blobInfo)获取写入流,分块写入避免内存溢出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:37:40