Я пытаюсь загрузить файл в Amazon S3 с помощью .NET SDK. Загрузка работает отлично, за исключением того, что она добавляет default permission к загруженному файлу, который является «Частным».Загрузить файл на Amazon S3 без разрешения по умолчанию
Я хочу, чтобы разрешение на загружаемые файлы было установлено в «BucketOwnerFullControl».
Ниже мой код, и я не совсем уверен, что мне нужно сделать, чтобы он работал как таковой.
static string accessKeyID = "";
static string secretAccessKey = "";
static string existingBucketName = "bucket";
static void Main(string[] args)
{
NameValueCollection appConfig = ConfigurationManager.AppSettings;
accessKeyID = appConfig["accesskey"];
secretAccessKey = appConfig["secretkey"];
string[] files = Directory.GetFiles("C:\\amazontestdirectory");
foreach (string fileName in files)
{
try
{
TransferUtility fileTransferUtility = new TransferUtility(accessKeyID, secretAccessKey);
// Upload a file, file name is used as the object key name.
fileTransferUtility.Upload(fileName, existingBucketName);
}
catch (AmazonS3Exception s3Exception)
{
Console.WriteLine("AWS error: " + s3Exception.Message, s3Exception.InnerException);
//Open a file for writing
string errorOutputFileName = System.IO.Path.GetFullPath("C:\\amazontestdirectory\\logs\\errorLog.txt");
//Get a StreamWriter class that can be used to write to the file
if (File.Exists(errorOutputFileName))
{
StreamWriter objStreamWriter;
objStreamWriter = File.AppendText(errorOutputFileName);
objStreamWriter.WriteLine();
objStreamWriter.WriteLine(DateTime.Now.ToString() + " - AWS error: " + s3Exception.Message, s3Exception.InnerException);
//Close the stream
objStreamWriter.Close();
}
}
}
}
Да, после дополнительных исследований я обнаружил, что мне пришлось использовать TransferUtilityUploadRequest. Сейчас все работает. –