Ответ 1
Как вы используете Asp.net, я предполагаю, что вы используете AWS.NET SDK.
Чтобы добавить Expires
(или любой другой заголовок http) при загрузке объекта, добавьте его как часть запроса PutObject
.
var client = new Amazon.S3.AmazonS3Client(AWS_Key, AWS_SecretKey);
var req = new Amazon.S3.Model.PutObjectRequest()
.WithFilePath(@"C:\myfile.txt")
.WithKey("myfile.txt")
.WithBucketName("mybucket");
req.AddHeader("expires", "Thu, 01 Dec 1994 16:00:00 GMT");
client.PutObject(req);
Чтобы изменить заголовок на существующем объекте, вам нужно скопировать объект сам по себе.
var req = new Amazon.S3.Model.CopyObjectRequest()
.WithDirective(Amazon.S3.Model.S3MetadataDirective.REPLACE)
.WithSourceBucket("mybucket")
.WithSourceKey("myfile.txt")
.WithDestinationBucket("mybucket")
.WithDestinationKey("myfile.txt");
req.AddHeader("expires", "Thu, 01 Dec 1994 16:00:00 GMT");
client.CopyObject(req);
Примечание: .WithDirective(Amazon.S3.Model.S3MetadataDirective.REPLACE)
должно быть установлено, чтобы указать новые заголовки. В противном случае существующие заголовки просто копируются.
Более подробную информацию см. в .NET SDK docs.