小编Cat*_*ass的帖子

为Google Cloud Storage API提供凭据

我正在尝试组建一个用于测试Google云端存储的hello world程序.我的目标是拥有最简单的程序,只需将硬编码文件上传到云存储.

我一直在互联网上搜索基础教程,但我能找到的最接近的是从App Engine使用云存储的指南.我把这个程序放在一起:

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Arrays;

import com.google.cloud.storage.Acl;
import com.google.cloud.storage.Acl.Role;
import com.google.cloud.storage.Acl.User;
import com.google.cloud.storage.BlobInfo;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;

public class Main {
    public static void main(String[] args) throws FileNotFoundException{

        FileInputStream fileInputStream = new FileInputStream("my-file.txt");

        Storage storage = StorageOptions.getDefaultInstance().getService();

        BlobInfo blobInfo =
            storage.create(
                BlobInfo
                    .newBuilder("my-cloud-storage-bucket", "my-file.txt")
                    .setAcl(new ArrayList<>(Arrays.asList(Acl.of(User.ofAllUsers(), Role.READER))))
                    .build(),
                fileInputStream);

        String fileUrl = blobInfo.getMediaLink();

        System.out.println("Uploaded URL: " + fileUrl);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行该代码时,我401 Unauthorized在调用时收到错误storage.create(),这并不奇怪,因为我没有提供用户名或密码.我收集的是因为该示例在App Engine中运行,它以这种方式提供凭据.

我尝试通过属性文件传递我的凭据:

Credential credential = …
Run Code Online (Sandbox Code Playgroud)

java google-cloud-storage google-cloud-platform

8
推荐指数
2
解决办法
4310
查看次数