我正在寻找一种使用以下客户端库在存储桶中创建文件夹的方法: https://cloud.google.com/storage/docs/json_api/v1/json-api-dotnet-samples
我看了下面的帖子,看来我需要使用简单的方法上传。 Creating folder in bucket google cloud storage using php
我看不出能够指定uploadtype
的任何方式,所有请求似乎都是uploadType=resumable
。
查看上面的帖子和小提琴曲,我需要使用uploadType=media
。有没有完成这个?
答案 0 :(得分:2)
在最新版本的API中执行此操作更为直接。 您仍然必须确保按照Salem的建议检查“/”。
public void AddFolder(string folder)
{
StorageClient storageClient = StorageClient.Create();
if (!FolderName.EndsWith("/"))
FolderName += "/";
var content = Encoding.UTF8.GetBytes("");
storageClient.UploadObject(bucketName, folder, "application/x-directory", new MemoryStream(content));
}
答案 1 :(得分:0)
这对我有用!不知道这是否是正确的方法,但这还不够。
public void CreateDir(string FolderName)
{
if (!FolderName.EndsWith("/"))
FolderName += "/";
var uploadStream = new MemoryStream(Encoding.UTF8.GetBytes(""));
Storage.Objects.Insert(
bucket: BucketName,
stream: uploadStream,
contentType: "application/x-directory",
body: new Google.Apis.Storage.v1.Data.Object() { Name = FolderName}
).Upload();
}
编辑:刚发现你可以直接将文件上传到你的目标对象,如果目录/子目录不存在,上传功能会为你创建它们。
答案 2 :(得分:0)
你需要做的就是把你想要的文件夹放在文件名之前
using (MemoryStream ms = new MemoryStream(System.Text.Encoding.ASCII.GetBytes(json)))
{
string fileName = $"/test/somefolder/{sourceId}_{DateTime.Now.ToString("yyyyMMddHHmmss")}.json";
await gcpClient.UploadObjectAsync(gcpBucketName, fileName, null, ms);
}