Amazon S3 .NET:上传 base64 图像数据?

Posted

技术标签:

【中文标题】Amazon S3 .NET:上传 base64 图像数据?【英文标题】:Amazon S3 .NET: Upload base64 image data? 【发布时间】:2018-07-16 00:45:24 【问题描述】:

我正在尝试将图像转换为 base64,并尝试使用 C# 将其上传到 AWS S3。我不断收到未找到远程服务器的异常。但我能够以编程方式登录并列出我拥有的存储桶。 你能找出问题所在吗?

    static void Main(string[] args)
    

        string configaccess = ConfigurationManager.AppSettings["AWSAccesskey"];
        string configsecret = ConfigurationManager.AppSettings["AWSSecretkey"];

        var s3Client = new AmazonS3Client(
            configaccess,
            configsecret,
            RegionEndpoint.USEast1
        );

        Byte[] bArray = File.ReadAllBytes("path/foo.jpg");
        String base64String = Convert.ToBase64String(bArray);

        try
        
            byte[] bytes = Convert.FromBase64String(base64String);

            using (s3Client)
            
                var request = new PutObjectRequest
                
                    BucketName = "bucketName",
                    CannedACL = S3CannedACL.PublicRead,
                    Key = string.Format("bucketName/0", "foo.jpg")
                ;
                using (var ms = new MemoryStream(bytes))
                
                    request.InputStream = ms;
                    s3Client.PutObject(request);
                
            
        
        catch (Exception ex)
        
            Console.WriteLine("AWS Fail");
        

    

【问题讨论】:

【参考方案1】:

我已经使用相同的代码进行了测试,并且对我来说工作正常。您无需在 Key 中指定存储桶名称。如果要将此文件存储在存储桶内的任何文件夹中,我们可以指定文件夹名称。

Key = string.Format("FolderName/0", "foo.jpg")。

【讨论】:

以上是关于Amazon S3 .NET:上传 base64 图像数据?的主要内容,如果未能解决你的问题,请参考以下文章

将 base64 字符串保存到 Amazon S3

无法在 asp.net mvc 中显示来自 s3 存储桶的上传图像

尽管存储桶是公共的,但 Amazon S3 base64 图像不适用于 og:image 标签

Amazon S3 直接上传无法识别文件的内容类型

Amazon S3 分段上传期间的 javax.net.ssl.SSLException

上传到 S3 的 base64 图像损坏