C# 在上载到S3的对象上设置“内容处置”?
我有一个.NET核心项目,可以将对象上传到S3存储桶。我想设置C# 在上载到S3的对象上设置“内容处置”?,c#,amazon-s3,C#,Amazon S3,我有一个.NET核心项目,可以将对象上传到S3存储桶。我想设置内容配置,这样当下载对象时,名称就是我们想要的。(不一定相关,但我不想更改对象的名称,因为我所追求的“下载名称”不保证在bucket中是唯一的) 这就是我正在尝试的: var fileTransferUtilityRequest = new TransferUtilityUploadRequest { BucketName = "my-bucket", FilePath = "/tmp/54a0f73d-65ea-4
内容配置
,这样当下载对象时,名称就是我们想要的。(不一定相关,但我不想更改对象的名称,因为我所追求的“下载名称”不保证在bucket中是唯一的)
这就是我正在尝试的:
var fileTransferUtilityRequest = new TransferUtilityUploadRequest
{
BucketName = "my-bucket",
FilePath = "/tmp/54a0f73d-65ea-4719-8227-b67209c15c9f.zip",
PartSize = 6291456, // 6 MB.
Key = "54a0f73d-65ea-4719-8227-b67209c15c9f.zip"
};
fileTransferUtilityRequest.Metadata.Add("Content-Disposition", "attachment; filename=\"human-name.zip\"");
await transferUtility.UploadAsync(fileTransferUtilityRequest, cancellationToken);
它最终使用键x-amz-meta-content-disposition
和我通过代码设置的值向对象添加元数据
上传过程中是否有方法设置我丢失的
内容配置
键?您可以在TransferUtilityUploadRequest的标题中设置内容配置
var fileTransferUtilityRequest = new TransferUtilityUploadRequest
{
BucketName = "my-bucket",
FilePath = "/tmp/54a0f73d-65ea-4719-8227-b67209c15c9f.zip",
PartSize = 6291456, // 6 MB.
Key = "54a0f73d-65ea-4719-8227-b67209c15c9f.zip"
};
fileTransferUtilityRequest.Headers.ContentDisposition = "attachment; filename=file-name.pdf";
可选的用户定义元数据名称必须以“x-amz-meta-”开头,这有助于将它们与其他HTTP头区分开。所以它看起来像是连接了x-amz-meta-
(必需的名称)和内容配置
(关键字名称)。我会在文档中对此进行讨论。是的,但是使用aws控制台,您可以设置几个非用户定义的元数据值,包括内容处理。也可以使用其他语言的SDK来完成。请看,我明白,我知道您可以设置值(但不能更改键行为)。我想说的是,你根本无法改变这种行为;它在规范中定义<代码>用户定义的元数据必须以前缀“x-amz-meta-”开头,否则AmazonS3将不会在您定义时设置键值对。您可以通过向x-amz-meta-key添加您选择的名称来定义自定义元数据。这将创建一个自定义键。
例如,如果添加自定义名称alt name,元数据键将是x-amz-meta-alt-name。
这在文档中。我想我不同意内容配置
不是自定义元数据的立场。这是一个标准标题,它们通过web控制台支持,您可以在那里手动设置。我们可以争论这个类中的元数据集合是否只用于自定义
项,但是仍然应该有一种方法可以通过sdk设置这个非自定义库存头,正如我链接的节点问题中所示,可以通过api来完成。