首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aws::ElasticTranscoder::Errors::AccessDeniedException

Aws::ElasticTranscoder::Errors::AccessDeniedException
EN

Stack Overflow用户
提问于 2018-06-22 09:56:02
回答 1查看 304关注 0票数 0

Aws::ElasticTranscoder::Errors::AccessDeniedException

我使用AWS ElasticTranscoder服务来创建作业和转换视频。

我在创建AWS ElasticTranscoder作业时出错。

Aws::ElasticTranscoder::Errors::AccessDeniedException (用户: arn:aws:iam::119945600465:user/s3_bucket_user未被授权执行:弹性转换编码器:在资源上创建作业: arn:aws:elastictranscoder:us-east-1:119945600465:pipeline/1464161888836-rawwl7) )

日志文件:

代码语言:javascript
复制
I, [2018-06-22T11:43:22.942346 #17751]  INFO -- : Completed 500 Internal Server Error in 100560ms (ActiveRecord: 29.3ms)
F, [2018-06-22T11:43:22.942944 #17751] FATAL -- :   
F, [2018-06-22T11:43:22.942988 #17751] FATAL -- : Aws::ElasticTranscoder::Errors::AccessDeniedException (User: arn:aws:iam::119945600465:user/s3_bucket_user is not authorized to perform: elastictranscoder:CreateJob on resource: arn:aws:elastictranscoder:us-east-1:119945600465:pipeline/1464161888836-rawwl7):
F, [2018-06-22T11:43:22.943032 #17751] FATAL -- :   
F, [2018-06-22T11:43:22.943081 #17751] FATAL -- : app/services/aws/upstge/transcode_video.rb:42:in `create_job'
app/services/aws/upstge/transcode_video.rb:11:in `call'
app/jobs/aws/upstge/video_preview_transcoder.rb:9:in `perform'
app/controllers/video_editors_controller.rb:38:in `create'

transcode_video.rb文件:

代码语言:javascript
复制
module Aws
  module Name
    class TranscodeVideo
      def initialize(video, job_response: nil)
        @video = video
        @job_response = job_response
      end

      def call
        resolutions = collect_resolutions
        create_job resolutions
      end

      private

      def collect_resolutions
        logger = Logger.new('log/aws_job.log')

        if @job_response.blank?
          Array(wallet[:transcoder][:stage_zero_mode])
        else
          wallet[:transcoder][:modes][:keys].tap { |keys| keys.delete(wallet[:transcoder][:stage_zero_mode]) }
          .delete_if { |res| res.to_i > max_resolution }
        end
      end

      def create_job(resolutions)
        logger = Logger.new('log/aws_job.log')
        return :no_available_resolutions if resolutions.blank?

        resolutions.each do |res|
          mode = wallet[:transcoder][:modes][:"360p"]
          logger.info "------------- mode ----------"
          logger.info mode
          options[:outputs].push({ key: "#{mode[:prefix]}/#{'51507dd0-aa55-42d4-8e89-33264f24bf1d'}#{mode[:extension]}",
                                   thumbnail_pattern: "#{mode[:prefix]}/#{'51507dd0-aa55-42d4-8e89-33264f24bf1d'}---{count}",
                                   preset_id: mode[:preset] })

        end
        logger.info "-----------------------"
        logger.info options
        transcoder.create_job(options)
        :started
      end

      def options
        @options ||= { pipeline_id: wallet[:transcoder][:pipeline],
                       input: { key: s3_object },
                       outputs: [] }
      end

      def s3_object
        @video.s3_object
      end

      def wallet
        @wallet ||= Rails.application.secrets.aws
      end

      def transcoder
        @transcoder ||= Aws::ElasticTranscoder::Client.new access_key_id: wallet[:access_key_id],
                                                           secret_access_key: wallet[:secret_access_key],
                                                           region: wallet[:region]
      end

      def max_resolution
        @max_resolution ||= (
          response = transcoder.read_job(id: @job_response.job_id)
          response.job.input.detected_properties.height
        )
      end
    end
  end
end
EN

回答 1

Stack Overflow用户

发布于 2018-06-22 10:13:24

正如错误消息所述:

代码语言:javascript
复制
s3_bucket_user is not authorized to perform: elastictranscoder:CreateJob

您的s3_bucket_user只具有使用S3的权限。错误消息显示您的代码试图调用弹性代码转换程序上的CreateJob()命令。因此,s3_bucket_user需要elastictranscoder:CreateJob权限。

如果您想轻松地做到这一点,只需给他们一个AmazonElasticTranscoder_JobsSubmitter策略,或者另一个您认为合适的策略。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50985412

复制
相关文章

相似问题

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