我正在尝试组建一个用于测试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)