After receiving a postback from Zencoder the encoded video is deleted by drupal from my bucket on S3 - and it shouldn't be!
To confirm this, I identified the zencoder job number for this issue, logged into app.zencoder.com and grabbed the incoming API request (from drupal to zencoder) which created the job. Then I removed the following lines and ran the request again manually through curl (i.e. keeping all other values in the API request exactly the same):
Then I took the new job number and checked on Zencoder that the encoding was done, and looked again on my S3 bucket - and the encoded video file was now there.
I also spoke with Chris W. in the Zencoder campfire chatroom and gave him my original job number. He confirmed that Zencoder had got a response back from Amazon saying that the video was successfully uploaded there - but when I checked, it wasn't there. He suggested that the file was deleted after my site received the postback. Running the above check proved him right.
This is odd!
There are 2 entries in watchdog regarding the postback:
"Postback received from Zencoder for fid: 250, Zencoder job id: 30330531." and
"Set Video Testing S3 to published."
Then I changed my AWS key and secret key values at admin/config/media/awssdk to nonsense values, and submitted the video to Zencoder again for re-encoding (via drupal), and lo and behold, the videos are now showing up on S3! Hooray! So it's definitely drupal that's deleting the videos on a postback.
I'm using Zencoder API client interface version 2.0.2 from http://github.com/zencoder/zencoder-php (because zencoderapi doesn't seem to recognise the latest 2.1.1 version), version 7.x-1.0-beta6 of amazons3 module (7.x-1.0-beta7 is latest), awssdk 7.x-4.8 with version 1.4.8 of the Official PHP SDK for Amazon Web Services.
The reason for the slightly outdated versions is that this is what the Octopus drupal distribution ships with, and they claim that everything on their disto works (and in using it, everything does - except for this one thing!). I'm open to updating them, except that I think the issue is somewhere in TranscoderAbstractionFactoryZencoder.inc as opposed to one of those modules (since none of their code gets called on a postback).
I've looked through function processPostback() in TranscoderAbstractionFactoryZencoder.inc and don't see anything that could be doing this. Where else could I look?