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

标签 c# amazon-web-services amazon-s3

目前我使用 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 无法执行此操作(因为它实际上只进行文件存储),但您可以通过使用启动下载并将文件推送到 S3 的 Lambda 函数来解决此问题。 Lambda 函数又可以通过 AWS SDK 或 API 网关 HTTP 请求调用。

关于c# - 是否可以请求 AWS S3 下载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41101043/

相关文章:

c# - 在同一页面上当我单击 Save_button 时,应该执行 firSTLy Page_Load 事件还是 btnSave_Click 按钮?

c# - 固定后更改 TileId?

mysql - Amazon 备份 RDS 实例时会发生什么?

ruby - 如何使用 Sinatra、Datamapper、DM-Paperclip 和 S3?

python - Athena 查询失败并显示 : "Insufficient permissions to execute the query"

c# - 有没有办法使用适用于 .NET 的 AWS 开发工具包将对象从 S3 存储桶下载到文件目标?

c# - 如何在没有减号的情况下使用 string.Format() 填充数字?

c# - 调试器暂停代码时如何忽略时间的流逝?

regex - apache HTTP :X-Forwarded-Proto in . htaccess 在开发环境中导致重定向循环

amazon-web-services - 模型验证失败 (#/EventSourceArn : failed validation constraint for keyword [pattern])