【问题标题】:Is it possible to request AWS S3 to download a file?是否可以请求 AWS S3 下载文件?
【发布时间】:2016-12-12 12:33:01
【问题描述】:

目前我使用 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 说:嘿,你能下载这张图片并为​​我存储吗?而不是:嘿,这是我刚刚下载的图片,你可以存储它吗?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 看起来这是唯一的解决方案。感谢您的想法,我正在研究此解决方案。
    猜你喜欢
    • 2018-02-03
    • 2022-07-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    • 1970-01-01
    相关资源
    最近更新 更多