繁体   English   中英

是否可以请求AWS S3下载文件?

[英]Is it possible to request AWS S3 to download a file?

目前我使用C#应用程序从已知URL下载图片并将其上传到AWS S3服务器上。

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);
        }
    }
}

它工作正常,但我想避免这种方法,我有一个恒定的巨大图像流来存储/删除所以它会杀死我的带宽。 是否可以绕过“下载”部分? 我的意思是,我可以要求AWS S3服务器自己下载位于ad.PhotoUrl的图像吗? “远程请求”不需要C#。 我只是想知道是否可能,所以我可以挖一点来找到解决方案。

为了简单起见,我只想对AWS S3说:嘿,你可以下载这个图像并存储给我吗? 而不是:嘿,这是我刚刚下载的图像,你能存储它吗?

S3无法做到这一点(因为它实际上只进行文件存储),但您可以通过使用Lambda函数来解决此问题,该函数启动下载并将文件推送到S3。 反过来,Lambda函数可以通过AWS SDK或API网关HTTP请求调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM