84 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			84 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						|||
| 
								 | 
							
								require_once __DIR__ . '/Common.php';
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								use OSS\OssClient;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								$bucket = Common::getBucketName();
							 | 
						|||
| 
								 | 
							
								$ossClient = Common::getOssClient();
							 | 
						|||
| 
								 | 
							
								if (is_null($ossClient)) exit(1);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								//*******************************简单使用***************************************************************
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/** putObject 使用callback上传内容到oss文件
							 | 
						|||
| 
								 | 
							
								  * callbackurl参数指定请求回调的服务器url
							 | 
						|||
| 
								 | 
							
								  * callbackbodytype参数可为application/json或application/x-www-form-urlencoded, 可选参数,默认为application/x-www-form-urlencoded
							 | 
						|||
| 
								 | 
							
								  * OSS_CALLBACK_VAR参数可以不设置
							 | 
						|||
| 
								 | 
							
								  */
							 | 
						|||
| 
								 | 
							
								$url = 
							 | 
						|||
| 
								 | 
							
								    '{
							 | 
						|||
| 
								 | 
							
								        "callbackUrl":"callback.oss-demo.com:23450",
							 | 
						|||
| 
								 | 
							
								        "callbackHost":"oss-cn-hangzhou.aliyuncs.com",
							 | 
						|||
| 
								 | 
							
								        "callbackBody":"bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&imageInfo.height=${imageInfo.height}&imageInfo.width=${imageInfo.width}&imageInfo.format=${imageInfo.format}&my_var1=${x:var1}&my_var2=${x:var2}",
							 | 
						|||
| 
								 | 
							
								         "callbackBodyType":"application/x-www-form-urlencoded"
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    }';
							 | 
						|||
| 
								 | 
							
								$var = 
							 | 
						|||
| 
								 | 
							
								    '{
							 | 
						|||
| 
								 | 
							
								        "x:var1":"value1",
							 | 
						|||
| 
								 | 
							
								        "x:var2":"值2"
							 | 
						|||
| 
								 | 
							
								    }';
							 | 
						|||
| 
								 | 
							
								$options = array(OssClient::OSS_CALLBACK => $url,
							 | 
						|||
| 
								 | 
							
								                 OssClient::OSS_CALLBACK_VAR => $var
							 | 
						|||
| 
								 | 
							
								                );
							 | 
						|||
| 
								 | 
							
								$result = $ossClient->putObject($bucket, "b.file", "random content", $options);
							 | 
						|||
| 
								 | 
							
								Common::println($result['body']);
							 | 
						|||
| 
								 | 
							
								Common::println($result['info']['http_code']);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/**
							 | 
						|||
| 
								 | 
							
								  * completeMultipartUpload 使用callback上传内容到oss文件
							 | 
						|||
| 
								 | 
							
								  * callbackurl参数指定请求回调的服务器url
							 | 
						|||
| 
								 | 
							
								  * callbackbodytype参数可为application/json或application/x-www-form-urlencoded, 可选参数,默认为application/x-www-form-urlencoded
							 | 
						|||
| 
								 | 
							
								  * OSS_CALLBACK_VAR参数可以不设置
							 | 
						|||
| 
								 | 
							
								  */  
							 | 
						|||
| 
								 | 
							
								$object = "multipart-callback-test.txt";
							 | 
						|||
| 
								 | 
							
								$copiedObject = "multipart-callback-test.txt.copied";
							 | 
						|||
| 
								 | 
							
								$ossClient->putObject($bucket, $copiedObject, file_get_contents(__FILE__));
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/**
							 | 
						|||
| 
								 | 
							
								  *  step 1. 初始化一个分块上传事件, 也就是初始化上传Multipart, 获取upload id
							 | 
						|||
| 
								 | 
							
								  */
							 | 
						|||
| 
								 | 
							
								$upload_id = $ossClient->initiateMultipartUpload($bucket, $object);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/**
							 | 
						|||
| 
								 | 
							
								 * step 2. uploadPartCopy
							 | 
						|||
| 
								 | 
							
								 */
							 | 
						|||
| 
								 | 
							
								$copyId = 1;
							 | 
						|||
| 
								 | 
							
								$eTag = $ossClient->uploadPartCopy($bucket, $copiedObject, $bucket, $object, $copyId, $upload_id);
							 | 
						|||
| 
								 | 
							
								$upload_parts[] = array(
							 | 
						|||
| 
								 | 
							
								    'PartNumber' => $copyId,
							 | 
						|||
| 
								 | 
							
								    'ETag' => $eTag,
							 | 
						|||
| 
								 | 
							
								    );
							 | 
						|||
| 
								 | 
							
								$listPartsInfo = $ossClient->listParts($bucket, $object, $upload_id);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/**
							 | 
						|||
| 
								 | 
							
								 * step 3.
							 | 
						|||
| 
								 | 
							
								 */
							 | 
						|||
| 
								 | 
							
								$json = 
							 | 
						|||
| 
								 | 
							
								    '{
							 | 
						|||
| 
								 | 
							
								        "callbackUrl":"callback.oss-demo.com:23450",
							 | 
						|||
| 
								 | 
							
								        "callbackHost":"oss-cn-hangzhou.aliyuncs.com",
							 | 
						|||
| 
								 | 
							
								        "callbackBody":"{\"mimeType\":${mimeType},\"size\":${size},\"x:var1\":${x:var1},\"x:var2\":${x:var2}}",
							 | 
						|||
| 
								 | 
							
								        "callbackBodyType":"application/json"
							 | 
						|||
| 
								 | 
							
								    }';
							 | 
						|||
| 
								 | 
							
								$var = 
							 | 
						|||
| 
								 | 
							
								    '{
							 | 
						|||
| 
								 | 
							
								        "x:var1":"value1",
							 | 
						|||
| 
								 | 
							
								        "x:var2":"值2"
							 | 
						|||
| 
								 | 
							
								    }';
							 | 
						|||
| 
								 | 
							
								$options = array(OssClient::OSS_CALLBACK => $json,
							 | 
						|||
| 
								 | 
							
								                 OssClient::OSS_CALLBACK_VAR => $var);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								$result = $ossClient->completeMultipartUpload($bucket, $object, $upload_id, $upload_parts, $options);
							 | 
						|||
| 
								 | 
							
								Common::println($result['body']);
							 | 
						|||
| 
								 | 
							
								Common::println($result['info']['http_code']);
							 |