如何设置公共权限,Elastic Transcoder Amazon SDK

本文关键字:权限 Elastic Transcoder SDK Amazon 何设置 设置 | 更新日期: 2023-09-27 18:05:24

如何使用Amazon.ElasticTranscoder.Model(. .)使所有文件公开。净,c#)。下面是我的代码:

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"
}
});
}

一切都很完美,但是转码文件是私有的。如何将其设置为public?

如何设置公共权限,Elastic Transcoder Amazon SDK

我今天刚刚遇到这个问题,解决方法如下:

在"为转码文件和播放列表配置Amazon S3桶"下的管道

  1. 使用"+ Add a permission link"
  2. 选择"授权方类型"为"Amazon S3组"。
  3. 选择"grant"为"All Users"
  4. 然后勾选"访问"为"打开/下载"answers"查看权限"
  5. 保存更改。

您可以对直接在下面的部分生成的任何缩略图重复此操作:"为缩略图配置Amazon S3 Bucket"

只是为了添加@timstermatic答案-我只需要授予'打开/下载'访问权限以使对象公开。

"查看权限"选项用于允许任何人读取对象的ACL(访问控制列表),而不是查看对象本身-这是由"打开/下载"选项处理的。

就像通常的AWS术语一样,很容易被误解——它不是"查看对象的权限",而是"查看对象的权限"。

通常策略冲突会导致这种情况。处理这个问题的一种更简单的方法是在Permissions选项卡的"bucket Policy"部分中直接在bucket上设置公共读取权限。这段代码可能会有所帮助。

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AllowPublicRead",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<BUCKET_NAME>/*"
        }
    ]
}

您也可以在Resource参数中指定文件夹。没有尝试过扩展,但我想这些应该也可以。