st7*_*t78 12 .net c# amazon-s3
我想为我的asp.net Web应用程序存储在S3中的文件设置过期日期标题.
Geo*_*ord 19
当您使用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);
Run Code Online (Sandbox Code Playgroud)
要更改现有对象的标题,您需要将对象复制到自身.
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);
Run Code Online (Sandbox Code Playgroud)
注意:.WithDirective(Amazon.S3.Model.S3MetadataDirective.REPLACE)必须设置才能指定新标头.否则,只复制现有的标题.
更多信息请参阅.NET SDK文档.
如果您使用的是AWS SDK 2.X,则"AddHeader"方法将不再可用.要添加标头,只需直接修改标头集合即可.
req.Headers["expires"] = "Thu, 01 Dec 1994 16:00:00 GMT";
以下是Geoff使用的修改示例:
var client = new Amazon.S3.AmazonS3Client(AWS_Key, AWS_SecretKey);
var req = PutObjectRequest req= new PutObjectRequest()
{
BucketName = "mybucket",
Key = "myfile.txt",
FilePath = @"C:\myfile.txt"
};
req.Headers["expires"] = "Thu, 01 Dec 1994 16:00:00 GMT";
client.PutObject(req);
Run Code Online (Sandbox Code Playgroud)
要更改标题,它的方式相同:
var req = new Amazon.S3.Model.CopyObjectRequest()
{
MetadataDirective = S3MetadataDirective.REPLACE,
SourceBucket = "mybucket",
SourceKey = "myfile.txt",
DestinationBucket = "mybucket",
DestinationKey = "myfile.txt"
};
req.Headers["expires"] = "Thu, 01 Dec 1994 16:00:00 GMT";
client.CopyObject(req);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5420 次 |
| 最近记录: |