2

RackSpace の CDN (Cloud Files) を使用して静的コンテンツを保存したいと考えています。問題は私が使用ASP.NET MVC3していることであり、それを行う方法の現在の実例を見たことがありません。

オンラインでいくつかの例を見ましたが、それらはすべて、RackSpace がサポートしていないバージョンのものでした。あなたは彼らのメモでそれを確認することができます:

http://www.rackspace.com/knowledge_center/article/sample-csharp-application-for-cloud-files

また、RackSpace の gitHub アカウントを openstack.net の下で確認すると、これは彼らのサポートがリダイレクトするプロジェクトであり、Cloud Files へのファイルのアップロードがサポートされていないことがわかります。Files テーブルの下に表示されます。

https://github.com/rackspace/openstack.net/wiki/Feature-Support

C# を使用してプログラムで RackSpace の Cloud Files にファイルをアップロードするにはどうすればよいですか?

4

2 に答える 2

2

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、リージョンの使用などの私の技術的要件であることに注意してください。

于 2014-12-23T13:44:53.127 に答える