繁体   English   中英

使用PHP在Akamai网络存储中上传视频文件

[英]Upload a video file in Akamai netstorage using PHP

我开始使用PHP上传文件到akamai网络存储,并在GitHub中引用了一些API。 我无法上传视频文件。 虽然我可以在其中创建和写入内容。

<?php
 require 'Akamai.php';
 $service = new Akamai_Netstorage_Service('******.akamaihd.net');
 $service->authorize('key','keyname','version');
 $service->upload('/dir-name/test/test.txt','sample text');
 ?>

我提到了这个API 我还介绍了其他几个人,但无法以正确的方式上传视频/图像文件。 我上面编写的代码运行正常。 现在,我需要上传视频文件,而不是将内容写入文本文件。

Akamai的NetStorage有一个更现代的库,它是作为FlySystem的插件(即akamai-open / netstorage)构建的

安装完毕后,您需要设置身份验证和HTTP客户端(基于Guzzle ):

$signer = new \Akamai\NetStorage\Authentication();
$signer->setKey($key, $keyName);

$handler = new \Akamai\NetStorage\Handler\Authentication();
$handler->setSigner($signer);

$stack = \GuzzleHttp\HandlerStack::create();
$stack->push($handler, 'netstorage-handler');

$client = new \Akamai\Open\EdgeGrid\Client([
    'base_uri' => $host,
    'handler' => $stack
]);

$adapter = new \Akamai\NetStorage\FileStoreAdapter($client, $cpCode);

然后,您可以创建文件系统对象,并上传文件:

$fs = new \League\Flysystem\Filesystem($adapter);

// Upload a file:
// cpCode, action, content signature, and request signature is added transparently
// Additionally, all required sub-directories are created transparently
$fs->write('/path/to/write/file/to', $fileContents);

但是,由于您要上传视频文件,因此建议您使用流而不是将内容读取到内存中。 为此,请改用writeStream()

$fs = new \League\Flysystem\Filesystem($adapter);
$stream = fopen('/path/to/local/file', 'r+');
$fs->writeStream('/path/to/write/file/to', $stream);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM