1

我正在寻找一种使用以下客户端库在存储桶内创建文件夹的方法: https ://cloud.google.com/storage/docs/json_api/v1/json-api-dotnet-samples

我查看了以下线程,看来我需要使用简单的方法上传。 使用 php 在桶谷歌云存储中创建文件夹

我看不到任何能够指定 a 的方式uploadtype,所有请求似乎都是uploadType=resumable.

查看上面的帖子和我需要使用的提琴手跟踪uploadType=media。有没有办法做到这一点?

4

3 回答 3

5

在最新版本的 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));

        }
于 2017-02-13T12:38:52.647 回答
1

这对我有用!不知道这是否是正确的方法,但这还不够。

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();
    }

编辑:刚刚发现您可以直接将文件上传到目标对象,如果目录/子目录不存在,则上传功能将为您创建它们。

于 2016-09-12T05:37:55.543 回答
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);
                        }
于 2021-04-14T15:09:08.943 回答