Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用Rackspace创建/上传子容器?_C#_Rackspace Cloud_Openstack Swift - Fatal编程技术网

C# 如何使用Rackspace创建/上传子容器?

C# 如何使用Rackspace创建/上传子容器?,c#,rackspace-cloud,openstack-swift,C#,Rackspace Cloud,Openstack Swift,如何创建子容器(目录)并使用Rackspace上载它们?我尝试在创建子容器时添加“\”,但是它实际上创建了一个名为文件夹\子文件夹的容器,因为我在OpenNetStack SDK中找不到关于如何添加子容器的任何地方。即使如此,手动创建子容器也不会太困难。。但是上传到他们那里呢 有人知道另一个Rackspace库允许创建/上传到子容器吗?您非常接近!诀窍是将URL路径分隔符/放在对象名中,而不是容器名中。这是OpenStack ObjectStorage API的工作方式,并不特定于.NET SD

如何创建子容器(目录)并使用Rackspace上载它们?我尝试在创建子容器时添加
“\”
,但是它实际上创建了一个名为
文件夹\子文件夹的容器,因为我在OpenNetStack SDK中找不到关于如何添加子容器的任何地方。即使如此,手动创建子容器也不会太困难。。但是上传到他们那里呢


有人知道另一个Rackspace库允许创建/上传到子容器吗?

您非常接近!诀窍是将URL路径分隔符
/
放在对象名中,而不是容器名中。这是OpenStack ObjectStorage API的工作方式,并不特定于.NET SDK或Rackspace

在下面的示例控制台应用程序中,我创建了一个容器,
images
,然后将文件命名为
thumbnails/logo.png
,将其添加到该容器中的子目录中。文件的结果公共URL被打印出来,本质上是容器的公共URL+文件名或
http://abc123.r27.cf1.rackcdn.com/thumbnails/logo.png
。容器URL对于每个容器和用户都是唯一的

using System;
using net.openstack.Core.Domain;
using net.openstack.Providers.Rackspace;

namespace CloudFileSubdirectories
{
    public class Program
    {
        public static void Main()
        {
            // Authenticate
            const string region = "DFW";
            var user = new CloudIdentity
            {
                Username = "username",
                APIKey = "apikey"
            };
            var cloudfiles = new CloudFilesProvider(user);

            // Create a container
            cloudfiles.CreateContainer("images", region: region);

            // Make the container publically accessible
            long ttl = (long)TimeSpan.FromMinutes(15).TotalSeconds;
            cloudfiles.EnableCDNOnContainer("images", ttl, region);
            var cdnInfo = cloudfiles.GetContainerCDNHeader("images", region);
            string containerPrefix = cdnInfo.CDNUri;

            // Upload a file to a "subdirectory" in the container
            cloudfiles.CreateObjectFromFile("images", @"C:\tiny-logo.png", "thumbnails/logo.png", region: region);

            // Print out the URL of the file
            Console.WriteLine($"Uploaded to {containerPrefix}/thumbnails/logo.png");
            // Uploaded to http://abc123.r27.cf1.rackcdn.com/thumbnails/logo.png
        }
    }
}

你试过了吗?是的,但是它会抛出一个错误。“容器包含“/”感谢您指出OpenStack.NET中没有这样的示例。我已经把它添加到维基上了:这太棒了,我真的很感激!