Я получаю эту ошибку при загрузке в контейнер на Azure:
Серверу не удалось аутентифицировать запрос.Убедитесь, что значение заголовка авторизации сформировано правильно, включая подпись.
И я знаю, что проблема вызвана различными часовыми поясами.
Но в моемприложение Я не могу зависеть от часового пояса, чтобы заставить дыру работать.Мне нужно решение, которое игнорирует часовой пояс для отправки файлов в контейнер.
Я не использую SAS.
Это мой код для загрузки:
public async Task<bool> SendPhotosAsync(int examID)
{
try
{
CancellationTokenSource cts = new CancellationTokenSource();
cts.CancelAfter(Constants.SendExamPhotosAsyncTimeout);
foreach (var image in GetExamFacePhotos(examID))
{
var fileName = Path.GetFileName(image);
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(Constants.AzureBlobStorageConnectionString);
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference(Constants.AzureBlobContainerExamFacePhotos);
// Retrieve reference to a blob named "myblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference(fileName);
// Create or overwrite the "myblob" blob with contents from a local file.
using (var fileStream = File.OpenRead(image))
{
if (fileStream.Length > 0)
{
await blockBlob.UploadFromStreamAsync(fileStream, fileStream.Length, null, null, null, cts.Token);
}
}
}
return true;
}
catch (TaskCanceledException)
{
throw new Exception(_context.GetString(Resource.String.error_task_canceled));
}
catch (Exception)
{
throw new Exception(_context.GetString(Resource.String.error_send_exam_media));
}
}
Редактировать 1
Чтобы воспроизвести то, что сказал @Gaurav, я изменил устройство GMT на 0 и сохранил время для моего текущего GMT (-3), GMT-0 09:02, и я получилExtendedErrorInformation
:
Слишком старый заголовок даты запроса: 'Пн, 11 марта 2019, 09:02:25 GMT'
Azure проверяет время и GMTзапрос.Если не совпадает, отображается ошибка.
Изменение на GMT-4 и установка времени на правильный часовой пояс, GMT-4 08:15, запрос был успешно выполнен .
Итак, часовой пояс не имеет значения, поскольку время совпадает с его часовым поясом.