1 回答
TA贡献1826条经验 获得超6个赞
要将文件上传到 Google Cloud Storage,您需要这些StorageOptions服务。您可以查看有关Uploading Objects的文档。
这会将Hello, Cloud Storage!字符串上传到blob_name存储桶中名为bucket. 您只需根据项目的需要更改名称。
上传您的本地文件之一。创建一个函数,该函数将读取文件的数据并将它们返回到将数据上传到存储桶的主函数。
我自己和以下代码做了一些编码,成功上传了包含您上面提到的数据的文件。
读取文件的函数:
它将从本地存储(例如 Cloud Shell)中读取文件并返回所有数据。
private String readFile(){
// The name of the file to open.
String fileName = "PATH/TO/THE/FILE/THAT/IS/GOING/TO/BE/UPLOADED/FILE_NAME/xml";
// This will reference one line at a time
String line = null;
// This will be the full file after reading
String output = "";
try {
// FileReader reads text files in the default encoding.
FileReader fileReader =
new FileReader(fileName);
// Always wrap FileReader in BufferedReader.
BufferedReader bufferedReader =
new BufferedReader(fileReader);
while((line = bufferedReader.readLine()) != null) {
System.out.println(line);
output = output + line;
}
// Always close files.
bufferedReader.close();
}
catch(FileNotFoundException ex) {
System.out.println(
output = output + "Unable to open file '" + fileName + "'";
}
catch(IOException ex) {
System.out.println(
output = output + "Error reading file '" + fileName + "'";
}
return output;
}
上传功能:
它将使用将从文件中读取的所有数据并将它们上传到存储桶中的新文件。文档代码之间的区别在于...readFile().getBytes(UTF_8)...调用位置。我们添加了将返回所有数据以供上传的函数,而不是字符串。
public String uploadFile(){
String bucket_name = "BUCKET_NAME";
String file_name = "PATH/TO/WHERE/THE/FILE/WILL/BE/UPLOADED/FILE_NAME.xml"
Storage storage = StorageOptions.getDefaultInstance().getService();
BlobId blobId = BlobId.of(bucket_name, file_name);
BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType("text/plain").build();
Blob blob = storage.create(blobInfo, readFile().getBytes(UTF_8));
}
添加回答
举报