2013-03-22 83 views
8

如何使用Amazon.ElasticTranscoder.Model(.NET,C#)公开所有文件。 这里是我的代码:如何设置公共,Elastic Transcoder Amazon SDK

public static void CreateJobRequest(string videoPath, string bucketName) 
{ 

string accsessKey = CloudSettings.AccessKeyID; 
string secretKey = CloudSettings.SecreteKey; 
var etsClient = new AmazonElasticTranscoderClient(accsessKey,secretKey, RegionEndpoint.USEast1); 
var notifications = new Notifications() 
{ 
Completed = "arn:aws:sns:us-east-1:XXXXXXXXXXXX:Transcode", 
Error = "arn:aws:sns:us-east-1:XXXXXXXXXXXX:Transcode", 
Progressing = "arn:aws:sns:us-east-1:XXXXXXXXXXXX:Transcode", 
Warning = "arn:aws:sns:us-east-1:XXXXXXXXXXXX:Transcode" 
}; 

var pipeline=etsClient.CreatePipeline(new CreatePipelineRequest() 
{ 
Name = "MyFolder", 
InputBucket = bucketName, 
OutputBucket = bucketName, 
Notifications = notifications, 
Role = "arn:aws:iam::XXXXXXXXXXXX:role/Elastic_Transcoder_Default_Role" 

}).CreatePipelineResult.Pipeline; 
etsClient.CreateJob(new CreateJobRequest() 
{ 
PipelineId = pipeline.Id, 
Input = new JobInput() 
{ 
AspectRatio = "auto", 
Container = "mp4", 
FrameRate = "auto", 
Interlaced = "auto", 
Resolution = "auto", 
Key = videoPath 

}, 
Output = new CreateJobOutput() 
{ 
ThumbnailPattern = videoPath+"videoName{resolution}_{count}", 
Rotate = "0", 
PresetId = "1351620000000-000020", 
Key = videoPath+"newFileName.mp4" 
} 
}); 

} 

一切都运行完美,但转换的文件都是私有的。我如何将其设置为公开?

回答

17

我只是有这个问题,今天解决它是如下的方式:

在你的管道“配置Amazon S3的桶中进行转码文件和播放列表”

  1. 使用下“ +添加权限链接“。
  2. 选择“Grantee Type”作为“Amazon S3 Group”。
  3. 选择“受让人”作为“所有用户”。
  4. 然后将“Access”选中为“打开/下载”和“查看权限”
  5. 保存更改。

您可以对直接位于下方的部分中生成的任何缩略图重复此操作:“配置缩略图Amazon S3 Bucket”。

7

只需添加@timstermatic答案 - 我只需授予“打开/下载”访问权限即可公开对象。

“查看权限”选项用于允许任何人阅读对象的ACL (Access Control List),而不是查看对象本身 - 这是由“打开/下载”选项照顾的。

像往常一样使用AWS术语,很容易被误解 - 它不是'查看对象的权限',而是'查看对象的权限'。

(抱歉,我不能添加为一个评论,我没有足够的代表。)

+0

有时我发誓,他们正在做的目的只是为了与我们的混乱。 – AJB 2015-06-09 05:13:41

相关问题