Azure Web App Bot - доступ к локальным ресурсам - PullRequest
0 голосов
/ 23 сентября 2018

Мой Web App Bot должен возвращать изображения, основываясь на запросе.Изображения находятся в папке .csproj в папке со следующей конфигурацией

enter image description here

Исходный код для отправки изображения пользователю

        var imgMessage = context.MakeMessage();

        var attachment = new Attachment();
        attachment.ContentUrl = $"{HttpContext.Current.Request.Url.Scheme}://{HttpContext.Current.Request.Url.Authority}/Resources/{InvocationName}/{InvocationNameExtension}.jpg";
        attachment.ContentType = "image/jpg";
        attachment.Name = "Image";

        context.PostAsync(attachment.ContentUrl);

Хотя он работает локально, он не работает после публикации в облаке Azure.Однако путь к облаку Azure выглядит примерно так: h ttps: //xxxx.azurewebsites.net/Resources/img/Cafeteria.jpg

Загрузка по FTP действительно включала файл

2>Adding file (xxxx\bin\Resources\img\Cafeteria.jpg).

Файл находится на сервере, но к нему нет доступа.Как я должен включить изображение, расположенное в .csproj?Я не хочу ссылаться на внешний URL из-за независимости.

1 Ответ

0 голосов
/ 24 сентября 2018

Изменено действие сборки на «Встроенный ресурс».

        string resourceFile = ResourceManager.FindResource(InvocationName, InvocationNameExtension);
        string resourceFileExtension = ResourceManager.GetResourceExtension(resourceFile);

        var attachment = new Attachment();
        attachment.ContentUrl = BuildImageUrl(resourceFile, resourceFileExtension);
        attachment.ContentType = $"image/{resourceFileExtension}";



    private string ConvertToBase64(string resourceFile) => Convert.ToBase64String(ResourceManager.GetBytes(resourceFile));

    private string BuildImageUrl(string resourceFile, string resourceFileExtension) => "data:image/" + resourceFileExtension + ";base64," + ConvertToBase64(resourceFile);

При таком подходе я отправляю непосредственно содержимое изображения через base64 пользователю.Работает как шарм

...