Giter VIP home page Giter VIP logo

wse-plugin-s3upload's Introduction

S3Upload

The ModuleS3Upload module for Wowza Streaming Engine™ media server software automatically uploads finished recordings to an Amazon S3 bucket. It uses the Amazon Web Services (AWS) SDK for Java to upload the recorded files.

This repo includes a compiled version.

Prerequisites

Wowza Streaming Engine 4.7.2.02 or later is recommended. For earlier versions see note below regarding AWS SDK version.

AWS SDK for Java

Note: For earlier versions of Wowza Streaming Engine™, AWS SDK version 1.10.77 or earlier is required. As a minimum, the following packages are required.

-AWS Java SDK For Amazon S3

-AWS SDK For Java Core

-AWS Java SDK For AWS KMS (it's not clear if this package is actually required. It's only referenced from AmazonS3EncryptionClient which isn't used in the S3 uploader)

The version of Apache httpclient that ships with Wowza Streaming Engine prior to 4.7.2.02 isn't compatible with the later versions of the AWS SDK

Usage

When a recording is finished, a temporary file named [recording-name].upload is created to track the recording and sort any data that may be needed to resume the file upload later if it's interrupted. AWS TransferManager uploads the recorded file, splitting it into a multipart upload if required. After the recorded file is uploaded, the temporary [recording-name].upload file is deleted.

When the Wowza Streaming Engine application starts or restarts, the module checks to see if any interrupted uploads must be completed. Interrupted single part uploads are restarted from the beginning while interrupted multipart uploads are resumed from the last complete part. If the module is set to not resume uploads after interruptions (s3UploadResumeUploads = false), incomplete multipart uploads are deleted from the S3 bucket.

More resources

To use the compiled version of this module, see How to upload recorded media to an Amazon S3 bucket (S3Upload).

Wowza Streaming Engine Server-Side API Reference

How to extend Wowza Streaming Engine using the Wowza IDE

Wowza Media Systems™ provides developers with a platform to create streaming applications and solutions. See Wowza Developer Tools to learn more about our APIs and SDK.

Contact

Wowza Media Systems, LLC

License

This code is distributed under the Wowza Public License.

wse-plugin-s3upload's People

Contributors

akeller avatar dnelsonwowz avatar gtd avatar lisa-wong avatar myoung1620 avatar rogerlittin avatar samuellusandi avatar shaggydev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wse-plugin-s3upload's Issues

Replacing existing files with same name

When streaming a stream "myStream", this gets recorded as myStream.mp4 and uploaded to S3. When a new stream with the same name gets recorded, it is recorded as myStream.mp4, and the original is moved to myStream_0.mp4 locally, but the original file on S3 is overwritten with the new stream. Would it be possible to rename the file on S3 as well to myStream_0.mp4 before uploading the new myStream.mp4 file to S3? To basically do the same on S3 as you do locally on the server.

Using variables for Properties value

Hi

I need to use a for s3UploadFilePrefix

To have something like

  			<Property>
    			<Name>s3UploadFilePrefix</Name>
    			<Value>${com.wowza.wms.context.Application}</Value>
  			</Property>

However variables is not supported. Is there any way to achieve this?

Stream not deleting

When streaming a stream "myStream", this gets recorded as myStream.mp4 and uploaded to S3.
When file uploading to S3 bucket, in local FS creating file myStream.mp4.upload, but after uploaded to S3, myStream.mp4 not deleting from local FS.
Properties s3UploadDeleteOriginalFiles and s3UploadDeletOriginalFiles set to TRUE )))
image

Question regarding implementation

Hi,

Thanks for sharing this plugin and its source code. I'm writing plugin for processing recordings too

  • Do you think that it is possible to take different route and use ILiveStreamRecordManagerActionNotify and onStopRecord method instead of IMediaWriterActionNotify?

  • In my subclass of ILiveStreamRecordManagerActionNotify in onStopRecord I want to spawn external process like:

    p = Runtime.getRuntime().exec(processor);
    p.waitFor();

    Do you think that this can block some important thread or it is OK to do this in this place?

Sorry if my questions are rather basic and somewhat related to my a bit lacking Java skills ;-)

P.S.
Of course I'm going to open source my plugin as well...

Support for IAM roles instead of using access keys

It would improve security if we could use this plugin without having to put the AWS access key and secret key in the Application.xml. Amazon Web Services has a feature that uses roles to gain access based on the EC2 instance it is running on.

Stackoverflow post with example java code:
https://stackoverflow.com/questions/44062813/aws-s3-upload-without-access-and-secret-key-in-java

I tried removing the access key and secret key from my configuration, but the plugin checks for this and did not try to upload.

Occasionally a NoSuchUpload error occurs.

When resuming multipart upload, the following error occurs. Target is using minio.

com.amazonaws.services.s3.model.AmazonS3Exception: The specified multipart upload does not exist. The upload ID may be invalid, or the upload may have been aborted or completed. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchUpload; Request ID: 3L137; S3 Extended Request ID: 3L137), S3 Extended Request ID: 3L137

TV Channel-Style Streaming Wowza streaming engine

I have recently purchased the Wowza streaming engine, and I have created this with the AMS server-side and run through AES encryption. At the start, it starts working and after a few seconds this error message "Adobe Flash Player is having trouble, either install the latest version or, if I have the latest version, turn on Flash Player".
I verified latest Flash Player is installed on my PC
I am using Window 10
when I contact Wowza and describe this problem
says it's an Adobe problem.
What to do? Any suggestions?
kindly visit this and tell me any solution
https://www.tvnewslivestream.com/

Functionality for a EndPoint connection in a private enviroment

Hi

We have a Hitachi Machine which is managed with the Amazon (AWS SDK) APIs over .NET application. Our machine is 100% compatible with AWS protocol, but that machine is in a private hosting (it’s not Amazon Cloud), then I can’t connect with the ‘region’ properties of the S3Upload plugin.

Reviewing the source code, I have seen that property S3UploadEndpoint could establish a direct connection (endpoint), this is the way we do to connect from the AWS APIs over .Net in this environment, and it’s working 100%. I think this functionality isn't fully implemented on the source because the source is more oriented to work with connection over the Amazon Cloud sites.

I would like to know if you will be able to develop this functionality, because my java skills are limited.

Thanks, Regards.

Plugin stops live stream from connecting

I am running the latest version of wowza streaming engine (4.8.10). When I do not include the module, then I am able to stream to the server using gocoder app, but as soon as I add the module configuration described in https://www.wowza.com/docs/how-to-upload-recorded-media-to-an-amazon-s3-bucket-modules3upload then gocoder no longer can stream.

Logs WITHOUT module loaded:
==> wowzastreamingengine_access.log <== 2021-02-24 10:33:36 UTC comment server INFO 200 - REST API: Restart Application: Application (live) shutdown - - - 396.937 - - - - -- - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:58 UTC comment server INFO 200 - MediaCasterStreamValidator.init[live/_definst_]: Started _defaultVHost_ - - 419.353 - - - -- - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:58 UTC comment server INFO 200 - ModuleCoreSecurity.onAppStart[live/_definst_]: Publish: AllowedEncoders: securityPublishValidEncoders:Wirecast/|FME/|FMLE/|Wowza GoCoder*|Lavf/|UA Teradek/|KulaByte/|HaivisionKB/|VidBlaster/|XSplit/|PESA|makitoX/|Elemental Live/ _defaultVHost_ - - 419.411 - - - - - - - -- - - - - - - - - - - - - - - - - 2021-02-24 10:33:58 UTC comment server INFO 200 - ModuleCoreSecurity.onAppStart[live/_definst_]: Publish: block duplicate stream names : false _defaultVHost_ - - 419.411 - - - - - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:58 UTC comment server INFO 200 - ModuleCoreSecurity.onAppStart[live/_definst_]: Play: SecureConnection: securityPlayRequireSecureConnection:false _defaultVHost_ - - 419.412 - - - - - - - - - - - - - - - - - - - - - -- - - 2021-02-24 10:33:58 UTC comment server INFO 200 - ModuleCoreSecurity.onAppStart[live/_definst_]: Play: securitySecureTokenVersion property is missing, using SecureToken Version 1, play security enabled for RTMP only _defaultVHost_ - - 419.414 - - - - - - - - - - - - - - - -- - - - - - - - - 2021-02-24 10:33:58 UTC app-start application INFO 200 _definst_ live/_definst_ _defaultVHost_ live _definst_ 419.428 - - - - - -- - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:58 UTC connect-pending session INFO 100 169.0.95.162 - _defaultVHost_ live _definst_ 0.266 [any] 1935 wowz://34.242.118.172:1935/live 169.0.95.162 wowz WowzaTransportSDK Wowza GoCoder SDK/1.0 477362478 3317 3073 - - - - - - - - - - - - - wowz://34.242.118.172:1935/live - 2021-02-24 10:33:58 UTC connect session INFO 200 169.0.95.162 - _defaultVHost_ live _definst_ 0.267 [any] 1935 wowz://34.242.118.172:1935/live 169.0.95.162wowz WowzaTransportSDK Wowza GoCoder SDK/1.0 477362478 3317 3073 - - - - - - - - - - - - - wowz://34.242.118.172:1935/live - 2021-02-24 10:33:58 UTC create stream INFO 200 - - _defaultVHost_ live _definst_ 0.0 [any] 1935 wowz://34.242.118.172:1935/live 169.0.95.162 wowzWowzaTransportSDK Wowza GoCoder SDK/1.0 477362478 3399 3344 1 0 0 0 - - - - - - wowz://34.242.118.172:1935/live wowz://34.242.118.172:1935/live - wowz://34.242.118.172:1935/live - 2021-02-24 10:33:58 UTC publish stream INFO 200 channel1 - _defaultVHost_ live _definst_ 0.171 [any] 1935 wowz://34.242.118.172:1935/live 169.0.95.162wowz WowzaTransportSDK Wowza GoCoder SDK/1.0 477362478 3440 3383 1 0 0 0 channel1 - - - - - wowz://34.242.118.172:1935/live/channel1 wowz://34.242.118.172:1935/live/channel1 - wowz://34.242.118.172:1935/live - 2021-02-24 10:33:59 UTC comment server INFO 200 - LiveReceiver.init[live/_definst_/channel1]: sortPackets:false flushInterval:75 onFlushNotifyClients:false sendSetDataFrame:false sendUpdatedOnMetaData:false audioLag:0 videoLag:0 _defaultVHost_ live _definst_ 420.541 - - - - - - - - - - - - - -- - - - - - - - - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - MediaStreamMap.getLiveStreamPacketizer[live/_definst_/channel1]: Create live stream packetizer: mpegdashstreamingpacketizer:channel1 - - - 420.544 - - - - - - - - - - - - - - - - - - - - -- - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - MediaStreamMap.getLiveStreamPacketizer[live/_definst_/channel1]: Create live stream packetizer: smoothstreamingpacketizer:channel1 - - - 420.545 - - - - - - - - - - - - - - - - - - - - - -- - - 2021-02-24 10:33:59 UTC comment server INFO 200 - LiveStreamPacketizerPacketHandler.startStream[live/_definst_/channel1][a/v] - - - 420.546 - - -- - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - LiveStreamPacketizerSanJose.init[live/_definst_/channel1]: chunkDurationTarget: 10000 - - - 420.546 - -- - - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.startStream[live/_definst_/channel1] - - - 420.546 - - -- - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - LiveStreamPacketizerSanJose.init[live/_definst_/channel1]: chunkDurationTolerance: 500 - - - 420.549 - -- - - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - LiveStreamPacketizerSanJose.init[live/_definst_/channel1]: playlistChunkCount:4 - - - 420.549 - - -- - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - MediaStreamMap.getLiveStreamPacketizer[live/_definst_/channel1]: Create live stream packetizer: sanjosestreamingpacketizer:channel1 - - - 420.55 - - - - - - - - - - - - - - - - - - - - - -- - - 2021-02-24 10:33:59 UTC comment server INFO 200 - SanJosePacketHandler.startStream[live/_definst_/channel1] - - - 420.55 - - - - -- - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - LiveStreamPacketizerSanJose.handlePacket[live/_definst_/channel1]: Video codec: H264 - - - 420.551 - -- - - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - LiveStreamPacketizerCupertino.init[live/_definst_/channel1]: chunkDurationTarget: 10000 - - - 420.551 - -- - - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - LiveStreamPacketizerCupertino.init[live/_definst_/channel1]: audioGroupCount: 3 - - - 420.555 - - -- - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - LiveStreamPacketizerSanJose.handlePacket[live/_definst_/channel1]: Audio codec: AAC - - - 420.555 - -- - - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - LiveStreamPacketizerCupertino.init[live/_definst_/channel1]: playlistChunkCount:3 - - - 420.555 - -- - - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - MediaStreamMap.getLiveStreamPacketizer[live/_definst_/channel1]: Create live stream packetizer: cupertinostreamingpacketizer:channel1 - - - 420.556 - - - - - - - - - - - - - - - - - - - - -- - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - CupertinoPacketHandler.startStream[live/_definst_/channel1] - - - 420.556 - - - - -- - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - LiveStreamPacketizerCupertino.handlePacket[live/_definst_/channel1]: Video codec:H264 isCompatible:true - - - 420.557 - - - - - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - LiveStreamPacketizerCupertino.handlePacket[live/_definst_/channel1]: Audio codec:AAC isCompatible:true - - - 420.557 - - - - - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - LiveStreamPacketizerCupertino.handlePacket[live/_definst_/channel1][avc1.420016]: H.264 Video info: {H264CodecConfigInfo: codec:H264, profile:Baseline, level:2.2, frameSize:640x480, displaySize:640x480} - - - 420.558 - - - - - - - - - - - - -- - - - - - - - - - - - 2021-02-24 10:33:59 UTC comment server INFO 200 - LiveStreamPacketizerCupertino.handlePacket[live/_definst_/channel1][mp4a.40.2]: AAC Audio info: {AACFrame: codec:AAC, channels:2, frequency:44100, samplesPerFrame:1024, objectType:LC} - - - 420.864 - - - - - - - - - - - - - - -- - - - - - - - - - 2021-02-24 10:34:00 UTC comment server INFO 200 - LiveStreamPacketizerPacketHandler.handlePacket[live/_definst_/channel1][a/v]: Video codec:H264 isCompatible:true - -- 421.156 - - - - - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:34:00 UTC comment server INFO 200 - LiveStreamPacketizerPacketHandler.handlePacket[live/_definst_/channel1][a/v]: Audio codec:AAC isCompatible:true - - -421.157 - - - - - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:34:00 UTC comment server INFO 200 - LiveStreamPacketizerPacketHandler.handlePacket[[live/_definst_/channel1][a/v]][mp4a.40.2]: AAC Audio info: {AACFrame: codec:AAC, channels:2, frequency:44100, samplesPerFrame:1024, objectType:LC} - - - 421.158 - - - - - - - - - - - - - -- - - - - - - - - - - 2021-02-24 10:34:00 UTC comment server INFO 200 - LiveStreamPacketizerPacketHandler.handlePacket[[live/_definst_/channel1][a/v]][avc1.420016|avc1.66.22]: H.264 Video info: {H264CodecConfigInfo: codec:H264, profile:Baseline, level:2.2, frameSize:640x480, displaySize:640x480} - - - 421.159 - - - - - - - - - -- - - - - - - - - - - - - - - 2021-02-24 10:34:02 UTC comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.handlePacket[live/_definst_/channel1]: Fragment durations: [0.9,1.0,1.0] - - -423.511 - - - - - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:34:02 UTC comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.flushPendingVideo: Bitrate[live/_definst_/channel1]: 1011350 - - - 423.512 - - - - - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:34:02 UTC comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[live/_definst_/channel1]: Add chunk: type:video id:0 count:30 duration:999 -- - 423.513 - - - - - - - - - - - - - - - - - - - - - - - -- 2021-02-24 10:34:03 UTC comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[live/_definst_/channel1]: Add chunk: type:video id:1 count:30 duration:1000-- - 424.52 - - - - - - - - - - - - - - - - - - - - - - - -- 2021-02-24 10:34:04 UTC comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[live/_definst_/channel1]: Add chunk: type:video id:2 count:30 duration:1000-- - 425.5 - - - - - - - - - - - - - - - - - - - - - - - -- 2021-02-24 10:34:05 UTC comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.flushPendingAudio: Bitrate[live/_definst_/channel1]: 65108 - - - 426.807 - - - - - - - - - - - - - - - - - - - - - - - - - 2021-02-24 10:34:05 UTC comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[live/_definst_/channel1]: Add chunk: type:audio id:0 count:87 duration:2020-- - 426.809 - - - - - - - - - - - - - - - - - - - - - - - -- 2021-02-24 10:34:05 UTC unpublish stream INFO 200 channel1 - _defaultVHost_ live _definst_ 7.241 [any] 1935 wowz://34.242.118.172:1935/live 169.0.95.162 wowz WowzaTransportSDK Wowza GoCoder SDK/1.0 477362478 773558 3521 1 0 775472 0 channel1 - - - - - wowz://34.242.118.172:1935/live/channel1 wowz://34.242.118.172:1935/live/channel1 - wowz://34.242.118.172:1935/live - 2021-02-24 10:34:05 UTC destroy stream INFO 200 channel1 - _defaultVHost_ live _definst_ 7.246 [any] 1935 wowz://34.242.118.172:1935/live 169.0.95.162wowz WowzaTransportSDK Wowza GoCoder SDK/1.0 477362478 773558 3521 1 0 775472 0 channel1 - - - - - wowz://34.242.118.172:1935/live/channel1 wowz://34.242.118.172:1935/live/channel1 - wowz://34.242.118.172:1935/live - 2021-02-24 10:34:05 UTC disconnect session INFO 200 477362478 - _defaultVHost_ live _definst_ 7.701 [any] 1935 wowz://34.242.118.172:1935/live 169.0.95.162 wowz WowzaTransportSDK Wowza GoCoder SDK/1.0 477362478 773558 3521 - - - - - - - - - - - - - wowz://34.242.118.172:1935/live -

Logs WITH module loaded when restarting:
2021-02-24 10:34:41 UTC app-stop application INFO 200 _definst_ live/_definst_ _defaultVHost_ live _definst_ 462.321 - - - - - -- - - - - - - - - - - - - - - - - - - 2021-02-24 10:34:41 UTC comment server INFO 200 - REST API: Restart Application: Application (live) shutdown - - - 462.327 - - - - -- - - - - - - - - - - - - - - - - - - - 2021-02-24 10:34:46 UTC comment server INFO 200 - MediaStreamMap.removeLiveStreamPacketizer[live/_definst_/channel1]: Destroy live stream packetizer: cupertinostreamingpacketizer - - - 466.997 - - - - - - - - - - - - - - - - - - - - - -- - - 2021-02-24 10:34:46 UTC comment server INFO 200 - MediaStreamMap.removeLiveStreamPacketizer[live/_definst_/channel1]: Destroy live stream packetizer: smoothstreamingpacketizer - - - 466.997 - - - - - - - - - - - - - - - - - - - - - -- - - 2021-02-24 10:34:46 UTC comment server INFO 200 - MediaStreamMap.removeLiveStreamPacketizer[live/_definst_/channel1]: Destroy live stream packetizer: mpegdashstreamingpacketizer - - - 466.997 - - - - - - - - - - - - - - - - - - - - - -- - - 2021-02-24 10:34:46 UTC comment server INFO 200 - MediaStreamMap.removeLiveStreamPacketizer[live/_definst_/channel1]: Destroy live stream packetizer: sanjosestreamingpacketizer - - - 466.997 - - - - - - - - - - - - - - - - - - - - - -- - -

Please tell me what is going wrong

Thanks

incorrect bucket region warning when using default region settings

I'm using this plugin (Build 50) with Wowza Streaming Engine 4.7.5 and it seems to be logging a warning incorrectly:

ModuleS3Upload.onAppStart: [whale_videorecording/_definst_] bucket region doesn't match configured region. (b:c)[us-east-1:null]

Both my EC2 instance and my S3 Bucket are configured to be in US East. I am using the s3UploadUseDefaultRegion option, which is enabled by default. The only setting I am using is the s3UploadBucketName option.

Additional libs

getting java.net.SocketException: Socket closed

java.net.SocketException: Socket closed on larger recording files, typically over 1.7G

        at java.net.SocketInputStream.read(SocketInputStream.java:203)
        at java.net.SocketInputStream.read(SocketInputStream.java:141)
        at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
        at sun.security.ssl.InputRecord.read(InputRecord.java:503)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
        at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:930)
        at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
        at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:139)
        at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:155)
        at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:284)
        at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140)
        at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
        at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:261)
        at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:165)
        at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167)
        at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:272)
        at com.amazonaws.http.protocol.SdkHttpRequestExecutor.doReceiveResponse(SdkHttpRequestExecutor.java:82)
        at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:124)
        at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271)
        at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
        at com.amazonaws.http.apache.client.impl.SdkHttpClient.execute(SdkHttpClient.java:72)
        at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:787)
        at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:630)
        at com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:405)
        at com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:367)
        at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:318)
        at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3785)
        at com.amazonaws.services.s3.AmazonS3Client.doUploadPart(AmazonS3Client.java:2857)
        at com.amazonaws.services.s3.AmazonS3Client.uploadPart(AmazonS3Client.java:2842)
        at com.amazonaws.services.s3.transfer.internal.UploadPartCallable.call(UploadPartCallable.java:33)
        at com.amazonaws.services.s3.transfer.internal.UploadPartCallable.call(UploadPartCallable.java:23)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)```

use doesBucketExist instead of listBuckets

On line ModuleS3Upload.java#410 you check to make sure the bucket exists. You should use s3client.doesBucketExist() instead which will allow you to only require ListBucket permission on the specific bucket instead of a more encompassing unnecessary permission of ListAllMyBuckets. It will also simplify the code and remove the need for a loop.

versioned files are not getting copied to s3

I've set the configuration option s3UploadDelay in an effort to be more resilient to network issues. I'd like to allow recovering a stream if its within 2 minutes of the ending. When I test this out however, I see the _0, _1, etc.. recordings on the wowza server but when the delay is up, only the non-versioned entry is copied into s3. Am I doing this wrong? or is this not how it was intended to work?

ModuleS3Upload compatibility with others S3 vendors

When I use ModuleS3Upload on Wowza 4.7.6, with AWS Java SDK 1.11.495, it throws this exception in the log :

ModuleS3Upload.onAppStart [javitest/definst] exception: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region.: com.amazonaws.SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region.|at com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:462)|at com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.java:424)|at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46)|at com.wowza.wms.plugin.s3upload.ModuleS3Upload.onAppStart(ModuleS3Upload.java:495)|at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

We need know if this module is fully supported with other S3 compatible services (not Amazon itself). If it's the case, how is the procedure to define the region, and configure an enviroment to replace the region. Thanks.

Amazon S3 TransferManager not running.

When I use this plugin , it show the error message below:

WARN server comment 2018-06-13 09:05:07 - - - - - 87.101 - - - - - - - - ModuleS3Upload.WriteListener.onWriteComplete Cannot upload file because S3 Transfer Manager isn't loaded: [live/definst/openlab.stream.mp4]

WARN server comment 2018-06-13 09:05:07 - - - - - 87.107 - - - - - - - - ModuleS3Upload.startUpload problem starting or resuming upload: [live/definst/openlab.stream.mp4.upload] Amazon S3 TransferManager not running.

My Wowza Stream Engine PAID is on AWS version is 4.7.5.
OS:Windows
AWS SDK: aws-java-sdk-1.11.346 and 1.10.77 have tried
Media file prefix:C:\Program Files (x86)\Wowza Media Systems\Wowza Streaming Engine\content

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.