2014年現在、Marc Mに返信すると、次のようになります。
最初に openstack.net パッケージをインストールします
https://www.nuget.org/packages/openstack.net/
PM> Install-Package openstack.net
アップロードするコード:
public static string Upload(Stream stream, string fileName)
{
CloudFilesProvider cloudFilesProvider = getProvider();
IEnumerable<string> containerObjectList =
cloudFilesProvider.ListObjects(CONTAINER_NAME, region: REGION_DFW)
.Select(o => o.Name);
string extension = Path.GetExtension(fileName);
string name = Path.GetFileNameWithoutExtension(fileName);
stream.Position = 0;
name = name.GenerateSlug(); //my method
fileName = name + extension;
while (containerObjectList.Contains(fileName))
fileName = name + Guid.NewGuid().ToString().Split('-')[0] + extension;
cloudFilesProvider
.CreateObject(CONTAINER_NAME, stream, fileName, region: REGION_DFW);
return Constants.Rackspace.CloudFiles.PUBLIC_CONTAINER + fileName;
}
private static CloudFilesProvider getProvider()
{
CloudIdentity cloudIdentity =
new CloudIdentity() { APIKey = API_KEY, Username = USERNAME };
return new CloudFilesProvider(cloudIdentity);
}
用途:
using net.openstack.Core.Domain;
using net.openstack.Providers.Rackspace;
一部の部分は、スラッグの生成、Guid、リージョンの使用などの私の技術的要件であることに注意してください。