Momentan verwende ich eine C# -App, um ein Bild von einer bekannten URL herunterzuladen und auf den AWS S3-Server hochzuladen.Kann AWS S3 zum Herunterladen einer Datei aufgefordert werden?
using (WebClient c = new WebClient())
{
var data = c.DownloadData(ad.PhotoUrl);
var s3 = new AmazonS3Client(RegionEndpoint.EUWest1);
using (var memoryStream = new MemoryStream(data))
{
using (var yourBitmap = new Bitmap(memoryStream))
{
yourBitmap.Save(memoryStream, ImageFormat.Jpeg);
var titledRequest = new PutObjectRequest
{
CannedACL = S3CannedACL.PublicRead,
InputStream = memoryStream,
BucketName = myBucket,
Key = keyName
};
s3.PutObject(titledRequest);
}
}
}
Es funktioniert gut, aber ich möchte diese Methode vermeiden, habe ich einen konstanten Fluss großes Bild zu speichern/löschen, so wäre es meine Bandbreite zu töten. Ist es möglich den "Download" Teil zu umgehen? Ich meine, kann ich den AWS S3-Server bitten, das Bild unter ad.PhotoUrl
alleine herunterzuladen? C# wird für die "Fernanfrage" nicht benötigt. Ich möchte nur wissen, ob es möglich ist, also könnte ich ein bisschen graben, um eine Lösung zu finden.
Um es einfach zu machen, ich nur zu AWS S3 sagen: Hey können Sie dieses Bild herunterladen und für mich speichern? Statt: Hey, hier ist das Bild, das ich gerade heruntergeladen habe, kannst du es speichern?
Sieht aus wie es die einzige Lösung ist. Danke für die Idee, ich untersuche diese Lösung. – Gun