Я занимаюсь разработкой проекта, в котором есть много файлов для хранения.Я создал отдельный API для файловых ресурсов, отправляя информацию в этот BC через NServiceBus
механизм обмена сообщениями.
После проверки изображения (внутри объекта) я отправляю некоторую информацию, такую как Base64String
, fileName, уникальный идентификатор файла, а также собираю имя root для API файловой службы.Я просто сохраняю путь к изображению в совокупности, например:
"/Product/C54AABD2-1D03-4C01-976D-6478D3963AF0.jpg"
, а затем передаю файл как base64 в API файловой службы:
public void SetImage(string base64Image, string imageId,string extension)
{
if (!IsBase64(base64Image))
{
throw new ImageBase64FormatException();
}
this.ImageId = imageId;
this.ImagePath = $"/{nameof(Product)}/{imageId}.{extension}";
AddDomainEvent(new ProductImageChangedEvent(this.Id.Id,this.ImageId,base64Image,$"{imageId}.png",nameof(Product)));
}
Это мой сценарий:
В File Service Solution есть консольный проект с именем «BusDispathcer», который должен работать как служба Windows для обработки вызванных событий.В этом всегда работающем приложении Windows я бы определил физический путь, в котором будет расположен основной API файловой службы (c:\wwwroot\...
) для хранения файла в указанной папке (имя сущности) и, наконец, в пользовательском интерфейсе (который является угловым) должен добавить адрес файласервисный API (например: files.myDomain.com
и основной API будет в productManagment.mydomain.com
) перед каждым путем к файлу (например: /Product/C54AABD2-1D03-4C01-976D-6478D3963AF0.jpg
).
Например:
<img src="files.myDomain.com/Product/C54AABD2-1D03-4C01-976D-6478D3963AF0.jpg"/>
Этот метод является правильным / неправильным или вы предлагаете лучший подход?