gpt4 book ai didi

c# - 使用非默认权限将文件上传到 Amazon S3

转载 作者:太空宇宙 更新时间:2023-11-03 21:40:10 30 4
gpt4 key购买 nike

我正在尝试使用 .NET SDK 将文件上传到 Amazon S3。上传工作正常,除了它正在应用 default permission到上传的文件,这是“私有(private)”。

我想将上传文件的权限设置为“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();
}
}
}
}

最佳答案

要在使用 TransferUtility 时设置权限,您需要使用接受 TransferUtilityUploadRequest 的上传覆盖。这使您可以在上传文件时设置更高级的选项。

TransferUtilityUploadRequest request = new TransferUtilityUploadRequest()
{
BucketName = existingBucketName,
FilePath = fileName,
CannedACL = S3CannedACL.BucketOwnerFullControl
};

// Upload a file, file name is used as the object key name.
fileTransferUtility.Upload(request);

关于c# - 使用非默认权限将文件上传到 Amazon S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19734882/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com