【发布时间】:2020-09-28 16:09:35
【问题描述】:
我正在按照这个 github 教程将文件上传到 GCS 存储桶中
https://github.com/thorrism/GoogleCloudExample
图片上传成功。
但我想将文件上传到存储桶内的文件夹中
例如
KS_bucket 是存储桶名称,images 是 KS_bucket 中存在的文件夹名称。
我试图像这样指定存储桶名称
KS_bucket/images 或 KS_bucket/images/
但我收到无效的存储桶名称错误
. W/System.err: {
2020-09-27 13:04:01.416 32172-32247/com. W/System.err: "code" : 400,
2020-09-27 13:04:01.416 32172-32247/com. W/System.err: "errors" : [ {
2020-09-27 13:04:01.416 32172-32247/ W/System.err: "domain" : "global",
2020-09-27 13:04:01.416 32172-32247/com. W/System.err: "message" : "Invalid bucket name: 'kS_bucket/images'",
2020-09-27 13:04:01.416 32172-32247/com. W/System.err: "reason" : "invalid"
2020-09-27 13:04:01.416 32172-32247/com. W/System.err: } ],
2020-09-27 13:04:01.416 32172-32247/com. W/System.err: "message" : "Invalid bucket name: 'ks_bucket/images'"
2020-09-27 13:04:01.416 32172-32247/com..W/System.err: }
我用来上传的方法是
public static void uploadFile(String bucketName, String filePath)
throws Exception {
Storage storage = getStorage();
StorageObject object = new StorageObject();
object.setBucket(bucketName);
File file = new File(filePath);
InputStream stream = new FileInputStream(file);
try {
String contentType = URLConnection
.guessContentTypeFromStream(stream);
InputStreamContent content = new InputStreamContent(contentType,
stream);
Storage.Objects.Insert insert = storage.objects().insert(
bucketName, null, content);
insert.setName(file.getName());
insert.execute();
} finally {
stream.close();
}
}
希望对此有所帮助,谢谢。
【问题讨论】:
-
您好,只是为了确定一下,您是否已经在您的项目中创建了 GCS 存储桶?如果是这样,它有那个名字(“ks_bucket”)吗?
-
是的,我可以将文件上传到存储桶,但我想将文件上传到存储桶内的文件夹
标签: java android google-cloud-storage