如果仅需要文件中的部分数据,您可以使用范围下载,下载指定范围内的数据。
以下代码用于下载文件[0, 4]的内容到本地内存:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <?php if (is_file(__DIR__ . '/../autoload.php' )) { require_once __DIR__ . '/../autoload.php' ; } if (is_file(__DIR__ . '/../vendor/autoload.php' )) { require_once __DIR__ . '/../vendor/autoload.php' ; } use OSS\OssClient; // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://console.cloud.tmall.com 创建RAM账号。 $accessKeyId = "<yourAccessKeyId>" ; $accessKeySecret = "<yourAccessKeySecret>" ; // Endpoint以杭州为例,其它Region请按实际情况填写。 $bucket= "<yourBucketName>" ; $object = "<yourObjectName>" ; // 获取0~4字节(包括0和4),共5个字节的数据。如果指定的范围无效(比如开始或结束位置的指定值为负数,或指定值大于文件大小),则下载整个文件。 $options = array(OssClient::OSS_RANGE => '0-4' ); try { $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $content = $ossClient->getObject($bucket, $object, $options); } catch (OssException $e) { printf(__FUNCTION__ . ": FAILED\n" ); printf($e->getMessage() . "\n" ); return ; } print ($content); print(__FUNCTION__ . ": OK" . "\n" ); |