2

Я пытаюсь сохранить файл XML в не CDN контейнер из Сиднея:OpenStack Rackspace Cloud Files .net SDK

public void Save(XDocument document) 
{ 
    using (MemoryStream ms = new MemoryStream()) 
    { 
     document.Save(ms); 
     ms.Position = 0; 

     RackspaceCloudIdentity identity = new RackspaceCloudIdentity { Username = "username", APIKey = "xxxxxxxxxxx", CloudInstance = CloudInstance.Default }; 
     CloudFilesProvider provider = new CloudFilesProvider(identity); 

     provider.CreateObject("XMLFiles", ms, "xmlFile1.xml", region: "syd"); 
    } 
} 

Для файла 1 Мб, она занимает около 50 секунд для загрузки (очень долго).

И пытается загрузить файл обратно, возвращает пустой результат:

public void Read() 
{ 
    RackspaceCloudIdentity identity = new RackspaceCloudIdentity { Username = "username", APIKey = "xxxxxxxxxxx", CloudInstance = CloudInstance.Default }; 
    CloudFilesProvider provider = new CloudFilesProvider(identity); 

    using (MemoryStream ms = new MemoryStream()) 
    { 
     provider.GetObject("XMLFiles", "xmlFile1.xml", ms, region: "syd"); 

     // ms.Length is 0 
    } 
} 

я делаю что-то не так?

ответ

1

Ugh. Я ввел эту ошибку в commit 799f37c (впервые выпущен в версии 1.1.3.0). Сейчас я изучаю лучшее обходное решение.

Edit: Там нет обходного пути, но я подал issue #116 по этому вопросу, и после того, как pull request для него слит, мы выпустим версию 1.1.3.1 библиотеки, чтобы исправить эту проблему.

1

Вы можете получить доступ к своей панели управления на mycloud.rackspace.com?

Я использовал свою панель управления для загрузки XML-файла, а затем использовал ваш код, чтобы загрузить файл XML. Он работал нормально.

Теперь я использую код загрузки, который вы опубликовали.

Просто хотел, чтобы вы знали, что я изучаю это.

+0

Ох. Итак, MINE работает, потому что я использую немного более старую (pre-799f37c) сборку (см. Комментарий к 280Z28 ниже). – user2195538