Uri HTTPS для Azure CloudDrive

В этой статье MSDN говорится, что строка подключения для подключения к учетной записи хранения должен быть HTTP, а не HTTPS.

Когда я использую этот конструктор:

public CloudDrive (
    Uri uri,
    StorageCredentials credentials
)

Означает ли это, что Uri для большого двоичного объекта страницы также должен быть HTTP, а не HTTPS? Я немного смущен тем, какой параметр (или оба вместе) подходит для описания «строки подключения».

Этот сценарий, похоже, нелегко протестировать в эмуляторе разработчика.


person jws_    schedule 20.09.2012    source источник


Ответы (1)


URI (считается серверной частью строки подключения) к страничному BLOB-объекту представляет собой пространство имен + контейнер + большой двоичный объект вашей учетной записи хранения. credentials представляет пользователя / проход, которые вместе с URI составляют строку подключения к службе облачного хранилища Azure.

URI всегда будет HTTP, если вы используете локальный эмулятор.

CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount;

При развертывании в Azure схема URI будет независимо от того, что вы назначите ей в службе. конфигурация (ServiceDefinition.csdef / ServiceConfiguration.Cloud.cscfg).

CloudStorageAccount storageAccount = CloudStorageAccount.FromConfigurationSetting("CloudDrive.DataConnectionString");

Вы просто хотите присвоить CloudDrive.DataConnectionString DefaultEndpointsProtocol=http (значение по умолчанию, если оно не указано, но вы можете быть явным).

ServiceDefinition.csdef

<ServiceDefinition>
  <WebRole>
    <!-- .... -->
    <ConfigurationSettings>
      <Setting name="CloudDrive.DataConnectionString" />
    </ConfigurationSettings>
  </WebRole>
</ServiceDefinition>

ServiceConfiguration.Cloud.cscfg

<ServiceConfiguration>
  <Role>
    <ConfigurationSettings>
     <Setting name="CloudDrive.DataConnectionString" value="DefaultEndpointsProtocol=http;AccountName=YOURNAMESPACE;AccountKey=YOURKEY" />
    </ConfigurationSettings>
  </Role>
</ServiceConfiguration>
person SliverNinja - MSFT    schedule 20.09.2012
comment
В этом сообщении блога MSDN говорится, что HTTPS не поддерживается для CloudDrive ... Мне придется попытаться связаться с вами. - person SliverNinja - MSFT; 21.09.2012
comment
Все мои строки подключения должны быть Https, поэтому кажется, что правильным способом использования этого конструктора было бы обеспечение того, чтобы часть uri была http: CloudStorageAccount httpsAccount = ...; var blobUri = httpsAccount.GetContainerReference("mycontainer").GetPageBlobReference("myblob").Uri; var httpBlobUri = new UriBuilder(blobUri){Scheme ="http", Port = 80}.Uri; CloudDrive cloudDrive = new CloudDrive(httpBlobUri, httpsAccount.Credentials); - person jws_; 21.09.2012
comment
Зачем вам нужны все строки подключения, определенные как HTTPS? Вы можете определить несколько строк подключения - просто используйте не-HTTPS для CloudDrive взаимодействия. Когда поддерживается HTTPS - вам не нужно создавать / повторно публиковать, вы можете просто изменить текущую конфигурацию. - person SliverNinja - MSFT; 21.09.2012
comment
к сожалению, эта часть находится вне моего контроля, я просто работаю в предположении получения строки подключения https. Я попробую сделать свой предыдущий комментарий о восстановлении uri на http вместо https. - person jws_; 21.09.2012