将录制的直播流上传到 S3 失败并出现 403 错误

Upload of recorded live stream to S3 fails with 403 error

使用亚马逊企业形象。 版本:企业版1.9.1 20200112_1830

日志摘录:

2020-03-27 18:39:58,432 [Red5_Scheduler_Worker-14] WARN  io.antmedia.datastore.db.MapDBStore - VoD is saved to DB 5e7c209388f3694f838a7235-2020-03-27_18-39.mp4 with voID 686857837498484259846404
2020-03-27 18:39:58,432 [Red5_Scheduler_Worker-14] INFO  io.antmedia.muxer.Mp4Muxer - Storage client is available saving 5e7c209388f3694f838a7235-2020-03-27_18-39.mp4 to storage
2020-03-27 18:39:59,580 [Red5_Scheduler_Worker-15] INFO  i.a.storage.AmazonS3StorageClient - Mp4 5e7c209388f3694f838a7235-2020-03-27_18-39.mp4 upload has started
2020-03-27 18:39:59,746 [java-sdk-progress-listener-callback-thread] ERROR i.a.storage.AmazonS3StorageClient - S3 - Error: Upload failed for 5e7c209388f3694f838a7235-2020-03-27_18-39.mp4
2020-03-27 18:39:59,748 [Red5_Scheduler_Worker-15] ERROR i.a.storage.AmazonS3StorageClient - com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: A09A7A88F205B567; S3 Extended Request ID: 9F7pRNZZGqOaXTRXfUueXKr3X5L3EOTqTc7/lSnxrcYZveRybaldzFdbPIuyN0nGzaVtTScC9Eo=), S3 Extended Request ID: 9F7pRNZZGqOaXTRXfUueXKr3X5L3EOTqTc7/lSnxrcYZveRybaldzFdbPIuyN0nGzaVtTScC9Eo=
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1639)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1304)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1056)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:743)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access0(AmazonHttpClient.java:667)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513)
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4325)
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4272)
    at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1749)
    at com.amazonaws.services.s3.transfer.internal.UploadCallable.uploadInOneChunk(UploadCallable.java:133)
    at com.amazonaws.services.s3.transfer.internal.UploadCallable.call(UploadCallable.java:125)
    at com.amazonaws.services.s3.transfer.internal.UploadMonitor.call(UploadMonitor.java:143)
    at com.amazonaws.services.s3.transfer.internal.UploadMonitor.call(UploadMonitor.java:48)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

webapps/WebRTCAppEE/WEB-INF/red5-web.xml: 秘密被检查并重新检查。相同的凭据在 aws 控制台应用程序上工作得很好。

<bean id="app.storageClient" class="io.antmedia.storage.AmazonS3StorageClient">
        <property name="accessKey" value="AKIA-------------ONQ" />
        <property name="secretKey" value="n25-----------------/z----i+L/yO" />
        <property name="region" value="eu-central-1" />
        <property name="storageName" value="streaming-scrnz" />
</bean>

知道我做错了什么吗?

据我了解您的日志,似乎存在权限问题。能否请您禁用您的 block public access 设置,然后重试?

据我所知,AWS 的设计发生了一些变化。这是最新的设计配置 ->