Kuvanvahvistaja Dockerilla (Suomi (Finnish))

Kuvanvahvistaja Dockerilla

Comments

NOTE: Apart from English (and even then it's questionable, I'm Scottish). These are machine translated in languages I don't read. If they're terrible please contact me.
You can see how this translation was done in this article.

Thursday, 01 August 2024

//

1 minute read

ImageSharp on loistava kirjasto kuvien kanssa työskentelyyn.NETissä. Se on nopea, helppokäyttöinen ja siinä on paljon ominaisuuksia. Tässä viestissä näytän sinulle, kuinka voit käyttää ImageSharpia Dockerin kanssa luodaksesi yksinkertaisen kuvankäsittelypalvelun.

Mikä on ImageSharp?

ImageSharp mahdollistaa saumattoman työskentelyn kuvien kanssa.NETissä. Se on cross-platform-kirjasto, joka tukee monenlaisia kuvaformaatteja ja tarjoaa yksinkertaisen API:n kuvankäsittelyyn. Se on nopea, tehokas ja helppokäyttöinen.

Setissäni on kuitenkin ongelma dockerin ja ImageSharpin avulla. Kun yritän ladata kuvan tiedostosta, saan seuraavan virheen: Pääsy kielletty polulle / wwroot/cache/ ym.... Tämä johtuu Docker ASP.NET -laitteista, jotka eivät salli kirjoitusoikeutta välimuistihakemistoon ImageSharpin avulla tallentaa tilapäisiä tiedostoja.

Ratkaisu

Ratkaisuna on asentaa laatikkoon äänenvoimakkuus, joka osoittaa isäntäkoneen hakemistoon. Näin ImageSharp-kirjasto voi kirjoittaa välimuistihakemistoon ilman ongelmia.

Näin se tehdään:

mostlylucid:
image: scottgal/mostlylucid:latest
volumes:
- /mnt/imagecache:/app/wwwroot/cache

Tässä näet, että kartoitan /app/wwwroot/cache-tiedoston paikalliseen hakemistoon isäntäkoneessani. Näin ImageSharp voi kirjoittaa välimuistihakemistoon ilman ongelmia.

Ubuntu-koneellani loin hakemiston /mnt/imagecache ja suoritin sitten folowing-komennon, jotta se olisi kirjoitettavissa (kuka tahansa, tiedän, että tämä ei ole turvallista, mutta en ole mikään Linux-guru :)

chmod  777 -p /mnt/imagecache

Ohjelmassa.cs:ssä minulla on tämä rivi:

builder.Services.AddImageSharp().Configure<PhysicalFileSystemCacheOptions>(options => options.CacheFolder = "cache");

Koska cacheroot-oletukset ovat wwwrootille, tämä kirjoitetaan nyt isäntäkoneen /mnt/imagecache-hakemistoon.

logo

©2024 Scott Galloway