Использование предварительно подписанного URL-адреса для загрузки изображения в Amazon S3 в C# - PullRequest
0 голосов
/ 26 мая 2020

Я новичок в Amazon S3.

У меня есть фрагмент кода, в котором файл загружается в Amazon S3 в C# (. Net Framework) с использованием токена и секретного ключа.

Теперь мои требования изменились, и я должен использовать предварительно подписанный URL-адрес для загрузки того же изображения / файла. Я могу сгенерировать предварительно подписанный URL-адрес, но не знаю, как загрузить изображение с помощью этого предварительно подписанного URL-адреса. Я пытался погуглить, но не нашел актуального решения. См. Фрагмент кода ниже:

/// <summary>
/// Method uploads files to a folder inside the Amazon Bucket
/// </summary>
/// <param name="BucketName">Amazon Bucket</param>
/// <param name="folderName">Name of the folder to be created</param>
/// <param name="fileName">Name of the file to be uploaded inside the folder</param>
/// <param name="fileUrl">Path of the file to be uploaded inside the folder</param>
/// <returns>Returns Amazon file path as BucketName/FolderName only if the file is successfully uploaded to this folder or else returns 1 to indicate that file upload was unsuccessful</returns>
public String CreateNewFileInFolder(String BucketName, String folderName, String fileName, String fileUrl, bool StoreInParentFolder = false, string PreSignurl)
{
    try
    {

        String S3Key = new S3FileInfo(
            s3Client, 
            BucketName, 
            folderName + "/" + fileName).Exists ? Path.GetFileNameWithoutExtension(fileUrl) + "-" + Guid.NewGuid() + Path.GetExtension(fileUrl) : Path.GetFileName(fileUrl);

        PutObjectRequest request = new PutObjectRequest
        { 
            BucketName = BucketName, 
            Key = folderName + "/" + S3Key, 
            FilePath = fileUrl, 
            ContentType = GetContentType(fileName) 
        };
        s3Client.PutObject(request);
    }
    catch (Exception e)
    {

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...