首页 > 解决方案 > 如何在 C# 中获取 S3 文件的 URL?

问题描述

在我的应用程序中,我需要获取一个输入文件,在这种情况下是一个图像,将其上传到一个 S3 存储桶并返回 URL,即用于检索的地址并将其存储在数据库中。

我在 S3 中正确上传了图像文件,但我不确定如何检索 S3 对象的 URL。

当前代码是

        public string WriteImageEx(byte[] image, string fileName)
    {
        var s3client = InitS3Client();

        try
        {
            var request = new PutObjectRequest
            {
                BucketName = bucketName,
                Key = subfolder + "/" + fileName,
                CannedACL = S3CannedACL.PublicRead,
            };

            logger.Debug("Attempting to write to s3 - BucketName [" + request.BucketName + "], Key [" + request.Key + "]");

            using (MemoryStream stream = new MemoryStream(image))
            {
                request.InputStream = stream;

                PutObjectResponse response = s3client.PutObject(request);


                logger.Debug("s3 PutObjectResponse:  HttpStatusCode[" + response.HttpStatusCode + "], ETag [" + response.ETag + "], Expiration [" + response.Expiration + "], VersionId [" + response.VersionId + "]");

                return bucketName + DELIMITER + request.Key;
            }
        }

        catch (Exception e)
        {
            logger.Error("WriteImageEx failed: ", e);
        }

        return null;
    }

想法?

标签: c#amazon-s3

解决方案


推荐阅读