Чтобы добавить файл в папку в ведре, необходимо обновить ключ запроса PutObjectRequest, чтобы он включал папку перед именем файла.
public bool UploadFileToS3(string uploadAsFileName, Stream ImageStream, S3CannedACL filePermission, S3StorageClass storageType, string toWhichBucketName)
{
try
{
using(client = Amazon.AWSClientFactory.CreateAmazonS3Client(MY_AWS_ACCESS_KEY_ID, MY_AWS_SECRET_KEY))
{
PutObjectRequest request = new PutObjectRequest();
request.WithKey( "folder" + "/" + uploadAsFileName );
request.WithInputStream(ImageStream);
request.WithBucketName(toWhichBucketName);
request.CannedACL = filePermission;
request.StorageClass = storageType;
client.PutObject(request);
}
}
catch
{
return false;
}
return true;
}
Это сообщение , в котором говорится о загрузке файлов в папку. Они используют TransferUtilityUploadRequest, но он должен работать с PutObjectRequest. Прокрутите вниз до соответствующего примера.
В этом сообщении показано, как создать папку без загрузки в нее файла.
Надеюсь, это полезно
Edit:
Обновлен код для использования блока using вместо вызова Dispose в соответствии с рекомендациями.