首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式设置亚马逊S3的Http头?

如何以编程方式设置亚马逊S3的Http头?
EN

Stack Overflow用户
提问于 2011-04-03 22:49:00
回答 3查看 7.4K关注 0票数 12

我想为我的S3 web应用程序存储在asp.net中的文件设置过期日期头。

  • 第一种情况-在PutObject请求期间
  • 第二种情况-每月更新一次到期日期,以更新到期日期。
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-04 09:52:18

在使用Asp.net时,我假设您使用的是AWS .NET SDK

若要在上载对象时添加Expires(或任何其他http标头),请将其添加为PutObject请求的一部分。

代码语言:javascript
复制
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);

若要更改现有对象的标头,需要将对象复制到自身。

代码语言:javascript
复制
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文档

票数 19
EN

Stack Overflow用户

发布于 2014-07-28 18:31:21

如果您使用的是AWSSDK2.x,那么"AddHeader“方法就不再可用。若要添加标头,只需直接修改标头集合。

req.Headers["expires"] = "Thu, 01 Dec 1994 16:00:00 GMT";

下面是上面使用的修改后的示例Geoff:

代码语言:javascript
复制
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);

要更改标题,其方式是相同的:

代码语言:javascript
复制
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);
票数 8
EN

Stack Overflow用户

发布于 2016-12-30 16:16:22

对于AWSSDK.S3 V3.*它的工作方式如下:

代码语言:javascript
复制
request.Headers.Expires = DateTime.Now.AddMinutes(2);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5533051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档