如何将 MediaInfo 与 Amazon S3 一起使用?
How to use MediaInfo with Amazon S3?
根据 MediaInfo ChangeLog,在 v0.7.76 中添加了对 Amazon S3 的支持,甚至在 v0.7.77(最新)中进行了修补。
但是,我找不到任何关于如何实现它的文档。它不在 CLI 帮助菜单中,也不在 SourceForge 项目页面中。由于 SourceForge 论坛关闭,我希望这里的人可能有一些见解。
如何制作 MediaInfo 命令以使用带有访问密钥和秘密密钥的 Amazon S3?我正在使用 CLI。
我能找到的最接近的东西是某人的示例 Java 代码:
http://fossies.org/linux/MediaInfo_CLI/MediaInfoLib/Source/Example/HowToUse_Dll.JNA.java
看起来他们正在制作对 S3 的自定义 HTTP 请求并将响应流式传输到 MediaInfo。我不确定。我不知道Java;我只知道Bash,Ruby,PHP.
有没有人成功让 MediaInfo 与 S3 一起工作;是这样的吗?
mediainfo https://AWSAccessKeyId:AWSSecretAccessKey@s3.amazonaws.com/bucketname/filename
Java示例是关于如何使用Java下载并从内存向MediaInfo发送数据的示例。现在 MediaInfo 原生支持 S3。所以只要提供这个 URL.
唯一的问题是您必须拥有可用的 libcurl 并且编译的 MediaInfo 支持 libcurl。这并非在所有平台上都可用(例如,在 Windows 上,您必须将来自 libcurl 网站的 libcurl.dll 放在与 mediainfo 相同的文件夹中)。
计划更好地提供此类支持(直接提供 libcurl,并在所有平台上进行全面测试),但没有预计到达时间。
Mediainfo 可执行文件可以使用 libcurl 在 linux 发行版上使用以下命令构建:(我使用的是 centos)
yum groupinstall 'Development Tools'
yum install libcurl-devel
yum install wget
wget http://mediaarea.net/download/binary/mediainfo/17.12/MediaInfo_CLI_17.12_GNU_FromSource.tar.xz
tar xvf MediaInfo_CLI_17.12_GNU_FromSource.tar.xz
cd MediaInfo_CLI_GNU_FromSource/
./CLI_Compile.sh --with-libcurl
cd MediaInfo/Project/GNU/CLI
./mediainfo --version
然后以下命令将为 Amazon S3 url 提供媒体信息。
mediainfo --Output=XML https://AWSAccessKeyId:AWSSecretAccessKey@s3.amazonaws.com/bucketname/filename
上述命令不适用于具有特殊字符的 AWS 密钥(文件名)。通过使用 pre-signed url,可以在 AWS 密钥中使用特殊字符。
aws s3 presign 's3://bucketname/testing/mini & bar™©.mp4'
mediainfo 'presignd url'
我遇到了同样的问题。请试试这个,它会起作用
https://{yourAwsAccessKey}:{yourAwswsSecretKey}@{yourBucketName}.s3.awsamazon.com/{file_path_in_bucket}
根据 MediaInfo ChangeLog,在 v0.7.76 中添加了对 Amazon S3 的支持,甚至在 v0.7.77(最新)中进行了修补。
但是,我找不到任何关于如何实现它的文档。它不在 CLI 帮助菜单中,也不在 SourceForge 项目页面中。由于 SourceForge 论坛关闭,我希望这里的人可能有一些见解。
如何制作 MediaInfo 命令以使用带有访问密钥和秘密密钥的 Amazon S3?我正在使用 CLI。
我能找到的最接近的东西是某人的示例 Java 代码: http://fossies.org/linux/MediaInfo_CLI/MediaInfoLib/Source/Example/HowToUse_Dll.JNA.java
看起来他们正在制作对 S3 的自定义 HTTP 请求并将响应流式传输到 MediaInfo。我不确定。我不知道Java;我只知道Bash,Ruby,PHP.
有没有人成功让 MediaInfo 与 S3 一起工作;是这样的吗?
mediainfo https://AWSAccessKeyId:AWSSecretAccessKey@s3.amazonaws.com/bucketname/filename
Java示例是关于如何使用Java下载并从内存向MediaInfo发送数据的示例。现在 MediaInfo 原生支持 S3。所以只要提供这个 URL.
唯一的问题是您必须拥有可用的 libcurl 并且编译的 MediaInfo 支持 libcurl。这并非在所有平台上都可用(例如,在 Windows 上,您必须将来自 libcurl 网站的 libcurl.dll 放在与 mediainfo 相同的文件夹中)。
计划更好地提供此类支持(直接提供 libcurl,并在所有平台上进行全面测试),但没有预计到达时间。
Mediainfo 可执行文件可以使用 libcurl 在 linux 发行版上使用以下命令构建:(我使用的是 centos)
yum groupinstall 'Development Tools'
yum install libcurl-devel
yum install wget
wget http://mediaarea.net/download/binary/mediainfo/17.12/MediaInfo_CLI_17.12_GNU_FromSource.tar.xz
tar xvf MediaInfo_CLI_17.12_GNU_FromSource.tar.xz
cd MediaInfo_CLI_GNU_FromSource/
./CLI_Compile.sh --with-libcurl
cd MediaInfo/Project/GNU/CLI
./mediainfo --version
然后以下命令将为 Amazon S3 url 提供媒体信息。
mediainfo --Output=XML https://AWSAccessKeyId:AWSSecretAccessKey@s3.amazonaws.com/bucketname/filename
上述命令不适用于具有特殊字符的 AWS 密钥(文件名)。通过使用 pre-signed url,可以在 AWS 密钥中使用特殊字符。
aws s3 presign 's3://bucketname/testing/mini & bar™©.mp4'
mediainfo 'presignd url'
我遇到了同样的问题。请试试这个,它会起作用
https://{yourAwsAccessKey}:{yourAwswsSecretKey}@{yourBucketName}.s3.awsamazon.com/{file_path_in_bucket}