You've already forked qlg.tsgz.moe
Init Repo
This commit is contained in:
263
vendor/oss-sdk/src/OSS/Core/MimeTypes.php
vendored
Executable file
263
vendor/oss-sdk/src/OSS/Core/MimeTypes.php
vendored
Executable file
@ -0,0 +1,263 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Core;
|
||||
|
||||
/**
|
||||
* Class MimeTypes
|
||||
*
|
||||
* The map of a file's extention name to its corresponding Content-Type value in the file upload request.
|
||||
* If the file extention name is not predefined in this class, getMimetype() returns null.
|
||||
*
|
||||
* @package OSS\Core
|
||||
*/
|
||||
class MimeTypes
|
||||
{
|
||||
/**
|
||||
* Get the content-type value of http header from the file's extension name.
|
||||
*
|
||||
* @param string $name Default file extension name.
|
||||
* @return string content-type
|
||||
*/
|
||||
public static function getMimetype($name)
|
||||
{
|
||||
$parts = explode('.', $name);
|
||||
if (count($parts) > 1) {
|
||||
$ext = strtolower(end($parts));
|
||||
if (isset(self::$mime_types[$ext])) {
|
||||
return self::$mime_types[$ext];
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static $mime_types = array(
|
||||
'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
||||
'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
|
||||
'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template',
|
||||
'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
|
||||
'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
|
||||
'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
|
||||
'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
||||
'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
|
||||
'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12',
|
||||
'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
|
||||
'apk' => 'application/vnd.android.package-archive',
|
||||
'hqx' => 'application/mac-binhex40',
|
||||
'cpt' => 'application/mac-compactpro',
|
||||
'doc' => 'application/msword',
|
||||
'ogg' => 'audio/ogg',
|
||||
'pdf' => 'application/pdf',
|
||||
'rtf' => 'text/rtf',
|
||||
'mif' => 'application/vnd.mif',
|
||||
'xls' => 'application/vnd.ms-excel',
|
||||
'ppt' => 'application/vnd.ms-powerpoint',
|
||||
'odc' => 'application/vnd.oasis.opendocument.chart',
|
||||
'odb' => 'application/vnd.oasis.opendocument.database',
|
||||
'odf' => 'application/vnd.oasis.opendocument.formula',
|
||||
'odg' => 'application/vnd.oasis.opendocument.graphics',
|
||||
'otg' => 'application/vnd.oasis.opendocument.graphics-template',
|
||||
'odi' => 'application/vnd.oasis.opendocument.image',
|
||||
'odp' => 'application/vnd.oasis.opendocument.presentation',
|
||||
'otp' => 'application/vnd.oasis.opendocument.presentation-template',
|
||||
'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
|
||||
'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template',
|
||||
'odt' => 'application/vnd.oasis.opendocument.text',
|
||||
'odm' => 'application/vnd.oasis.opendocument.text-master',
|
||||
'ott' => 'application/vnd.oasis.opendocument.text-template',
|
||||
'oth' => 'application/vnd.oasis.opendocument.text-web',
|
||||
'sxw' => 'application/vnd.sun.xml.writer',
|
||||
'stw' => 'application/vnd.sun.xml.writer.template',
|
||||
'sxc' => 'application/vnd.sun.xml.calc',
|
||||
'stc' => 'application/vnd.sun.xml.calc.template',
|
||||
'sxd' => 'application/vnd.sun.xml.draw',
|
||||
'std' => 'application/vnd.sun.xml.draw.template',
|
||||
'sxi' => 'application/vnd.sun.xml.impress',
|
||||
'sti' => 'application/vnd.sun.xml.impress.template',
|
||||
'sxg' => 'application/vnd.sun.xml.writer.global',
|
||||
'sxm' => 'application/vnd.sun.xml.math',
|
||||
'sis' => 'application/vnd.symbian.install',
|
||||
'wbxml' => 'application/vnd.wap.wbxml',
|
||||
'wmlc' => 'application/vnd.wap.wmlc',
|
||||
'wmlsc' => 'application/vnd.wap.wmlscriptc',
|
||||
'bcpio' => 'application/x-bcpio',
|
||||
'torrent' => 'application/x-bittorrent',
|
||||
'bz2' => 'application/x-bzip2',
|
||||
'vcd' => 'application/x-cdlink',
|
||||
'pgn' => 'application/x-chess-pgn',
|
||||
'cpio' => 'application/x-cpio',
|
||||
'csh' => 'application/x-csh',
|
||||
'dvi' => 'application/x-dvi',
|
||||
'spl' => 'application/x-futuresplash',
|
||||
'gtar' => 'application/x-gtar',
|
||||
'hdf' => 'application/x-hdf',
|
||||
'jar' => 'application/java-archive',
|
||||
'jnlp' => 'application/x-java-jnlp-file',
|
||||
'js' => 'application/javascript',
|
||||
'json' => 'application/json',
|
||||
'ksp' => 'application/x-kspread',
|
||||
'chrt' => 'application/x-kchart',
|
||||
'kil' => 'application/x-killustrator',
|
||||
'latex' => 'application/x-latex',
|
||||
'rpm' => 'application/x-rpm',
|
||||
'sh' => 'application/x-sh',
|
||||
'shar' => 'application/x-shar',
|
||||
'swf' => 'application/x-shockwave-flash',
|
||||
'sit' => 'application/x-stuffit',
|
||||
'sv4cpio' => 'application/x-sv4cpio',
|
||||
'sv4crc' => 'application/x-sv4crc',
|
||||
'tar' => 'application/x-tar',
|
||||
'tcl' => 'application/x-tcl',
|
||||
'tex' => 'application/x-tex',
|
||||
'man' => 'application/x-troff-man',
|
||||
'me' => 'application/x-troff-me',
|
||||
'ms' => 'application/x-troff-ms',
|
||||
'ustar' => 'application/x-ustar',
|
||||
'src' => 'application/x-wais-source',
|
||||
'zip' => 'application/zip',
|
||||
'm3u' => 'audio/x-mpegurl',
|
||||
'ra' => 'audio/x-pn-realaudio',
|
||||
'wav' => 'audio/x-wav',
|
||||
'wma' => 'audio/x-ms-wma',
|
||||
'wax' => 'audio/x-ms-wax',
|
||||
'pdb' => 'chemical/x-pdb',
|
||||
'xyz' => 'chemical/x-xyz',
|
||||
'bmp' => 'image/bmp',
|
||||
'gif' => 'image/gif',
|
||||
'ief' => 'image/ief',
|
||||
'png' => 'image/png',
|
||||
'wbmp' => 'image/vnd.wap.wbmp',
|
||||
'ras' => 'image/x-cmu-raster',
|
||||
'pnm' => 'image/x-portable-anymap',
|
||||
'pbm' => 'image/x-portable-bitmap',
|
||||
'pgm' => 'image/x-portable-graymap',
|
||||
'ppm' => 'image/x-portable-pixmap',
|
||||
'rgb' => 'image/x-rgb',
|
||||
'xbm' => 'image/x-xbitmap',
|
||||
'xpm' => 'image/x-xpixmap',
|
||||
'xwd' => 'image/x-xwindowdump',
|
||||
'css' => 'text/css',
|
||||
'rtx' => 'text/richtext',
|
||||
'tsv' => 'text/tab-separated-values',
|
||||
'jad' => 'text/vnd.sun.j2me.app-descriptor',
|
||||
'wml' => 'text/vnd.wap.wml',
|
||||
'wmls' => 'text/vnd.wap.wmlscript',
|
||||
'etx' => 'text/x-setext',
|
||||
'mxu' => 'video/vnd.mpegurl',
|
||||
'flv' => 'video/x-flv',
|
||||
'wm' => 'video/x-ms-wm',
|
||||
'wmv' => 'video/x-ms-wmv',
|
||||
'wmx' => 'video/x-ms-wmx',
|
||||
'wvx' => 'video/x-ms-wvx',
|
||||
'avi' => 'video/x-msvideo',
|
||||
'movie' => 'video/x-sgi-movie',
|
||||
'ice' => 'x-conference/x-cooltalk',
|
||||
'3gp' => 'video/3gpp',
|
||||
'ai' => 'application/postscript',
|
||||
'aif' => 'audio/x-aiff',
|
||||
'aifc' => 'audio/x-aiff',
|
||||
'aiff' => 'audio/x-aiff',
|
||||
'asc' => 'text/plain',
|
||||
'atom' => 'application/atom+xml',
|
||||
'au' => 'audio/basic',
|
||||
'bin' => 'application/octet-stream',
|
||||
'cdf' => 'application/x-netcdf',
|
||||
'cgm' => 'image/cgm',
|
||||
'class' => 'application/octet-stream',
|
||||
'dcr' => 'application/x-director',
|
||||
'dif' => 'video/x-dv',
|
||||
'dir' => 'application/x-director',
|
||||
'djv' => 'image/vnd.djvu',
|
||||
'djvu' => 'image/vnd.djvu',
|
||||
'dll' => 'application/octet-stream',
|
||||
'dmg' => 'application/octet-stream',
|
||||
'dms' => 'application/octet-stream',
|
||||
'dtd' => 'application/xml-dtd',
|
||||
'dv' => 'video/x-dv',
|
||||
'dxr' => 'application/x-director',
|
||||
'eps' => 'application/postscript',
|
||||
'exe' => 'application/octet-stream',
|
||||
'ez' => 'application/andrew-inset',
|
||||
'gram' => 'application/srgs',
|
||||
'grxml' => 'application/srgs+xml',
|
||||
'gz' => 'application/x-gzip',
|
||||
'htm' => 'text/html',
|
||||
'html' => 'text/html',
|
||||
'ico' => 'image/x-icon',
|
||||
'ics' => 'text/calendar',
|
||||
'ifb' => 'text/calendar',
|
||||
'iges' => 'model/iges',
|
||||
'igs' => 'model/iges',
|
||||
'jp2' => 'image/jp2',
|
||||
'jpe' => 'image/jpeg',
|
||||
'jpeg' => 'image/jpeg',
|
||||
'jpg' => 'image/jpeg',
|
||||
'kar' => 'audio/midi',
|
||||
'lha' => 'application/octet-stream',
|
||||
'lzh' => 'application/octet-stream',
|
||||
'm4a' => 'audio/mp4a-latm',
|
||||
'm4p' => 'audio/mp4a-latm',
|
||||
'm4u' => 'video/vnd.mpegurl',
|
||||
'm4v' => 'video/x-m4v',
|
||||
'mac' => 'image/x-macpaint',
|
||||
'mathml' => 'application/mathml+xml',
|
||||
'mesh' => 'model/mesh',
|
||||
'mid' => 'audio/midi',
|
||||
'midi' => 'audio/midi',
|
||||
'mov' => 'video/quicktime',
|
||||
'mp2' => 'audio/mpeg',
|
||||
'mp3' => 'audio/mpeg',
|
||||
'mp4' => 'video/mp4',
|
||||
'mpe' => 'video/mpeg',
|
||||
'mpeg' => 'video/mpeg',
|
||||
'mpg' => 'video/mpeg',
|
||||
'mpga' => 'audio/mpeg',
|
||||
'msh' => 'model/mesh',
|
||||
'nc' => 'application/x-netcdf',
|
||||
'oda' => 'application/oda',
|
||||
'ogv' => 'video/ogv',
|
||||
'pct' => 'image/pict',
|
||||
'pic' => 'image/pict',
|
||||
'pict' => 'image/pict',
|
||||
'pnt' => 'image/x-macpaint',
|
||||
'pntg' => 'image/x-macpaint',
|
||||
'ps' => 'application/postscript',
|
||||
'qt' => 'video/quicktime',
|
||||
'qti' => 'image/x-quicktime',
|
||||
'qtif' => 'image/x-quicktime',
|
||||
'ram' => 'audio/x-pn-realaudio',
|
||||
'rdf' => 'application/rdf+xml',
|
||||
'rm' => 'application/vnd.rn-realmedia',
|
||||
'roff' => 'application/x-troff',
|
||||
'sgm' => 'text/sgml',
|
||||
'sgml' => 'text/sgml',
|
||||
'silo' => 'model/mesh',
|
||||
'skd' => 'application/x-koan',
|
||||
'skm' => 'application/x-koan',
|
||||
'skp' => 'application/x-koan',
|
||||
'skt' => 'application/x-koan',
|
||||
'smi' => 'application/smil',
|
||||
'smil' => 'application/smil',
|
||||
'snd' => 'audio/basic',
|
||||
'so' => 'application/octet-stream',
|
||||
'svg' => 'image/svg+xml',
|
||||
't' => 'application/x-troff',
|
||||
'texi' => 'application/x-texinfo',
|
||||
'texinfo' => 'application/x-texinfo',
|
||||
'tif' => 'image/tiff',
|
||||
'tiff' => 'image/tiff',
|
||||
'tr' => 'application/x-troff',
|
||||
'txt' => 'text/plain',
|
||||
'vrml' => 'model/vrml',
|
||||
'vxml' => 'application/voicexml+xml',
|
||||
'webm' => 'video/webm',
|
||||
'webp' => 'image/webp',
|
||||
'wrl' => 'model/vrml',
|
||||
'xht' => 'application/xhtml+xml',
|
||||
'xhtml' => 'application/xhtml+xml',
|
||||
'xml' => 'application/xml',
|
||||
'xsl' => 'application/xml',
|
||||
'xslt' => 'application/xslt+xml',
|
||||
'xul' => 'application/vnd.mozilla.xul+xml',
|
||||
);
|
||||
}
|
54
vendor/oss-sdk/src/OSS/Core/OssException.php
vendored
Executable file
54
vendor/oss-sdk/src/OSS/Core/OssException.php
vendored
Executable file
@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Core;
|
||||
|
||||
/**
|
||||
* Class OssException
|
||||
*
|
||||
* This is the class that OSSClient is expected to thrown, which the caller needs to handle properly.
|
||||
* It has the OSS specific errors which is useful for troubleshooting.
|
||||
*
|
||||
* @package OSS\Core
|
||||
*/
|
||||
class OssException extends \Exception
|
||||
{
|
||||
private $details = array();
|
||||
|
||||
function __construct($details)
|
||||
{
|
||||
if (is_array($details)) {
|
||||
$message = $details['code'] . ': ' . $details['message']
|
||||
. ' RequestId: ' . $details['request-id'];
|
||||
parent::__construct($message);
|
||||
$this->details = $details;
|
||||
} else {
|
||||
$message = $details;
|
||||
parent::__construct($message);
|
||||
}
|
||||
}
|
||||
|
||||
public function getHTTPStatus()
|
||||
{
|
||||
return isset($this->details['status']) ? $this->details['status'] : '';
|
||||
}
|
||||
|
||||
public function getRequestId()
|
||||
{
|
||||
return isset($this->details['request-id']) ? $this->details['request-id'] : '';
|
||||
}
|
||||
|
||||
public function getErrorCode()
|
||||
{
|
||||
return isset($this->details['code']) ? $this->details['code'] : '';
|
||||
}
|
||||
|
||||
public function getErrorMessage()
|
||||
{
|
||||
return isset($this->details['message']) ? $this->details['message'] : '';
|
||||
}
|
||||
|
||||
public function getDetails()
|
||||
{
|
||||
return isset($this->details['body']) ? $this->details['body'] : '';
|
||||
}
|
||||
}
|
464
vendor/oss-sdk/src/OSS/Core/OssUtil.php
vendored
Executable file
464
vendor/oss-sdk/src/OSS/Core/OssUtil.php
vendored
Executable file
@ -0,0 +1,464 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Core;
|
||||
|
||||
/**
|
||||
* Class OssUtil
|
||||
*
|
||||
* Oss Util class for OssClient. The caller could use it for formating the result from OssClient.
|
||||
*
|
||||
* @package OSS
|
||||
*/
|
||||
class OssUtil
|
||||
{
|
||||
const OSS_CONTENT = 'content';
|
||||
const OSS_LENGTH = 'length';
|
||||
const OSS_HEADERS = 'headers';
|
||||
const OSS_MAX_OBJECT_GROUP_VALUE = 1000;
|
||||
const OSS_MAX_PART_SIZE = 5368709120; // 5GB
|
||||
const OSS_MID_PART_SIZE = 10485760; // 10MB
|
||||
const OSS_MIN_PART_SIZE = 102400; // 100KB
|
||||
|
||||
/**
|
||||
* Generate query params
|
||||
*
|
||||
* @param array $options: a key-value pair array.
|
||||
* @return string: the key-value list in the format such as key1=value1&key2=value2
|
||||
*/
|
||||
public static function toQueryString($options = array())
|
||||
{
|
||||
$temp = array();
|
||||
uksort($options, 'strnatcasecmp');
|
||||
foreach ($options as $key => $value) {
|
||||
if (is_string($key) && !is_array($value)) {
|
||||
$temp[] = rawurlencode($key) . '=' . rawurlencode($value);
|
||||
}
|
||||
}
|
||||
return implode('&', $temp);
|
||||
}
|
||||
|
||||
/**
|
||||
* Html encoding '<', '>', '&', '\', '"' in subject parameter.
|
||||
*
|
||||
* @param string $subject
|
||||
* @return string
|
||||
*/
|
||||
public static function sReplace($subject)
|
||||
{
|
||||
$search = array('<', '>', '&', '\'', '"');
|
||||
$replace = array('<', '>', '&', ''', '"');
|
||||
return str_replace($search, $replace, $subject);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether the string includes any chinese character
|
||||
*
|
||||
* @param $str
|
||||
* @return int
|
||||
*/
|
||||
public static function chkChinese($str)
|
||||
{
|
||||
return preg_match('/[\x80-\xff]./', $str);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the string is encoded by GB2312.
|
||||
*
|
||||
* @param string $str
|
||||
* @return boolean false UTF-8 encoding TRUE GB2312 encoding
|
||||
*/
|
||||
public static function isGb2312($str)
|
||||
{
|
||||
for ($i = 0; $i < strlen($str); $i++) {
|
||||
$v = ord($str[$i]);
|
||||
if ($v > 127) {
|
||||
if (($v >= 228) && ($v <= 233)) {
|
||||
if (($i + 2) >= (strlen($str) - 1)) return true; // not enough characters
|
||||
$v1 = ord($str[$i + 1]);
|
||||
$v2 = ord($str[$i + 2]);
|
||||
if (($v1 >= 128) && ($v1 <= 191) && ($v2 >= 128) && ($v2 <= 191))
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the string is encoded by GBK
|
||||
*
|
||||
* @param string $str
|
||||
* @param boolean $gbk
|
||||
* @return boolean
|
||||
*/
|
||||
public static function checkChar($str, $gbk = true)
|
||||
{
|
||||
for ($i = 0; $i < strlen($str); $i++) {
|
||||
$v = ord($str[$i]);
|
||||
if ($v > 127) {
|
||||
if (($v >= 228) && ($v <= 233)) {
|
||||
if (($i + 2) >= (strlen($str) - 1)) return $gbk ? true : FALSE; // not enough characters
|
||||
$v1 = ord($str[$i + 1]);
|
||||
$v2 = ord($str[$i + 2]);
|
||||
if ($gbk) {
|
||||
return (($v1 >= 128) && ($v1 <= 191) && ($v2 >= 128) && ($v2 <= 191)) ? FALSE : TRUE;//GBK
|
||||
} else {
|
||||
return (($v1 >= 128) && ($v1 <= 191) && ($v2 >= 128) && ($v2 <= 191)) ? TRUE : FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $gbk ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the bucket name is valid
|
||||
* bucket naming rules
|
||||
* 1. Can only include lowercase letters, numbers, or dashes
|
||||
* 2. Must start and end with lowercase letters or numbers
|
||||
* 3. Must be within a length from 3 to 63 bytes.
|
||||
*
|
||||
* @param string $bucket Bucket name
|
||||
* @return boolean
|
||||
*/
|
||||
public static function validateBucket($bucket)
|
||||
{
|
||||
$pattern = '/^[a-z0-9][a-z0-9-]{2,62}$/';
|
||||
if (!preg_match($pattern, $bucket)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if object name is valid
|
||||
* object naming rules:
|
||||
* 1. Must be within a length from 1 to 1023 bytes
|
||||
* 2. Cannot start with '/' or '\\'.
|
||||
* 3. Must be encoded in UTF-8.
|
||||
*
|
||||
* @param string $object Object名称
|
||||
* @return boolean
|
||||
*/
|
||||
public static function validateObject($object)
|
||||
{
|
||||
$pattern = '/^.{1,1023}$/';
|
||||
if (empty($object) || !preg_match($pattern, $object) ||
|
||||
self::startsWith($object, '/') || self::startsWith($object, '\\')
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checks if $str starts with $findMe
|
||||
*
|
||||
* @param string $str
|
||||
* @param string $findMe
|
||||
* @return bool
|
||||
*/
|
||||
public static function startsWith($str, $findMe)
|
||||
{
|
||||
if (strpos($str, $findMe) === 0) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Generate the xml message of createBucketXmlBody.
|
||||
*
|
||||
* @param string $storageClass
|
||||
* @return string
|
||||
*/
|
||||
public static function createBucketXmlBody($storageClass)
|
||||
{
|
||||
$xml = new \SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><CreateBucketConfiguration></CreateBucketConfiguration>');
|
||||
$xml->addChild('StorageClass', $storageClass);
|
||||
return $xml->asXML();
|
||||
}
|
||||
|
||||
/**
|
||||
* validate $options
|
||||
*
|
||||
* @param array $options
|
||||
* @throws OssException
|
||||
* @return boolean
|
||||
*/
|
||||
public static function validateOptions($options)
|
||||
{
|
||||
//$options
|
||||
if ($options != NULL && !is_array($options)) {
|
||||
throw new OssException ($options . ':' . 'option must be array');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* check whether the Content is valid.
|
||||
*
|
||||
* @param $content string
|
||||
* @throws OssException
|
||||
*/
|
||||
public static function validateContent($content)
|
||||
{
|
||||
if (empty($content)) {
|
||||
throw new OssException("http body content is invalid");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if BUCKET/OBJECT/OBJECT GROUP is empty.
|
||||
*
|
||||
* @param string $name
|
||||
* @param string $errMsg
|
||||
* @throws OssException
|
||||
* @return void
|
||||
*/
|
||||
public static function throwOssExceptionWithMessageIfEmpty($name, $errMsg)
|
||||
{
|
||||
if (empty($name)) {
|
||||
throw new OssException($errMsg);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This is a method for test only. DO NOT USE.
|
||||
*
|
||||
* @param $filename
|
||||
* @param $size
|
||||
*/
|
||||
public static function generateFile($filename, $size)
|
||||
{
|
||||
if (file_exists($filename) && $size == filesize($filename)) {
|
||||
echo $filename . " already exists, no need to create again. ";
|
||||
return;
|
||||
}
|
||||
$part_size = 1 * 1024 * 1024;
|
||||
$fp = fopen($filename, "w");
|
||||
$characters = <<<BBB
|
||||
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||
BBB;
|
||||
|
||||
$charactersLength = strlen($characters);
|
||||
if ($fp) {
|
||||
while ($size > 0) {
|
||||
if ($size < $part_size) {
|
||||
$write_size = $size;
|
||||
} else {
|
||||
$write_size = $part_size;
|
||||
}
|
||||
$size -= $write_size;
|
||||
$a = $characters[rand(0, $charactersLength - 1)];
|
||||
$content = str_repeat($a, $write_size);
|
||||
$flag = fwrite($fp, $content);
|
||||
if (!$flag) {
|
||||
echo "write to " . $filename . " failed. <br>";
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
echo "open " . $filename . " failed. <br>";
|
||||
}
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get MD5 of the file.
|
||||
*
|
||||
* @param $filename
|
||||
* @param $from_pos
|
||||
* @param $to_pos
|
||||
* @return string
|
||||
*/
|
||||
public static function getMd5SumForFile($filename, $from_pos, $to_pos)
|
||||
{
|
||||
$content_md5 = "";
|
||||
if (($to_pos - $from_pos) > self::OSS_MAX_PART_SIZE) {
|
||||
return $content_md5;
|
||||
}
|
||||
$filesize = filesize($filename);
|
||||
if ($from_pos >= $filesize || $to_pos >= $filesize || $from_pos < 0 || $to_pos < 0) {
|
||||
return $content_md5;
|
||||
}
|
||||
|
||||
$total_length = $to_pos - $from_pos + 1;
|
||||
$buffer = 8192;
|
||||
$left_length = $total_length;
|
||||
if (!file_exists($filename)) {
|
||||
return $content_md5;
|
||||
}
|
||||
|
||||
if (false === $fh = fopen($filename, 'rb')) {
|
||||
return $content_md5;
|
||||
}
|
||||
|
||||
fseek($fh, $from_pos);
|
||||
$data = '';
|
||||
while (!feof($fh)) {
|
||||
if ($left_length >= $buffer) {
|
||||
$read_length = $buffer;
|
||||
} else {
|
||||
$read_length = $left_length;
|
||||
}
|
||||
if ($read_length <= 0) {
|
||||
break;
|
||||
} else {
|
||||
$data .= fread($fh, $read_length);
|
||||
$left_length = $left_length - $read_length;
|
||||
}
|
||||
}
|
||||
fclose($fh);
|
||||
$content_md5 = base64_encode(md5($data, true));
|
||||
return $content_md5;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the OS is Windows. The default encoding in Windows is GBK.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function isWin()
|
||||
{
|
||||
return strtoupper(substr(PHP_OS, 0, 3)) == "WIN";
|
||||
}
|
||||
|
||||
/**
|
||||
* Encodes the file path from GBK to UTF-8.
|
||||
* The default encoding in Windows is GBK.
|
||||
* And if the file path is in Chinese, the file would not be found without the transcoding to UTF-8.
|
||||
*
|
||||
* @param $file_path
|
||||
* @return string
|
||||
*/
|
||||
public static function encodePath($file_path)
|
||||
{
|
||||
if (self::chkChinese($file_path) && self::isWin()) {
|
||||
$file_path = iconv('utf-8', 'gbk', $file_path);
|
||||
}
|
||||
return $file_path;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the endpoint is in the IPv4 format, such as xxx.xxx.xxx.xxx:port or xxx.xxx.xxx.xxx.
|
||||
*
|
||||
* @param string $endpoint The endpoint to check.
|
||||
* @return boolean
|
||||
*/
|
||||
public static function isIPFormat($endpoint)
|
||||
{
|
||||
$ip_array = explode(":", $endpoint);
|
||||
$hostname = $ip_array[0];
|
||||
$ret = filter_var($hostname, FILTER_VALIDATE_IP);
|
||||
if (!$ret) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the xml message of DeleteMultiObjects.
|
||||
*
|
||||
* @param string[] $objects
|
||||
* @param bool $quiet
|
||||
* @return string
|
||||
*/
|
||||
public static function createDeleteObjectsXmlBody($objects, $quiet)
|
||||
{
|
||||
$xml = new \SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><Delete></Delete>');
|
||||
$xml->addChild('Quiet', $quiet);
|
||||
foreach ($objects as $object) {
|
||||
$sub_object = $xml->addChild('Object');
|
||||
$object = OssUtil::sReplace($object);
|
||||
$sub_object->addChild('Key', $object);
|
||||
}
|
||||
return $xml->asXML();
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the xml message of CompleteMultipartUpload.
|
||||
*
|
||||
* @param array[] $listParts
|
||||
* @return string
|
||||
*/
|
||||
public static function createCompleteMultipartUploadXmlBody($listParts)
|
||||
{
|
||||
$xml = new \SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><CompleteMultipartUpload></CompleteMultipartUpload>');
|
||||
foreach ($listParts as $node) {
|
||||
$part = $xml->addChild('Part');
|
||||
$part->addChild('PartNumber', $node['PartNumber']);
|
||||
$part->addChild('ETag', $node['ETag']);
|
||||
}
|
||||
return $xml->asXML();
|
||||
}
|
||||
|
||||
/**
|
||||
* Read the directory, return a associative array in which the MD5 is the named key and the <path,filanme> is the value.
|
||||
*
|
||||
* @param string $dir
|
||||
* @param string $exclude
|
||||
* @param bool $recursive
|
||||
* @return string[]
|
||||
*/
|
||||
public static function readDir($dir, $exclude = ".|..|.svn|.git", $recursive = false)
|
||||
{
|
||||
$file_list_array = array();
|
||||
$base_path = $dir;
|
||||
$exclude_array = explode("|", $exclude);
|
||||
$exclude_array = array_unique(array_merge($exclude_array, array('.', '..')));
|
||||
|
||||
if ($recursive) {
|
||||
foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($dir)) as $new_file) {
|
||||
if ($new_file->isDir()) continue;
|
||||
$object = str_replace($base_path, '', $new_file);
|
||||
if (!in_array(strtolower($object), $exclude_array)) {
|
||||
$object = ltrim($object, '/');
|
||||
if (is_file($new_file)) {
|
||||
$key = md5($new_file . $object, false);
|
||||
$file_list_array[$key] = array('path' => $new_file, 'file' => $object,);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if ($handle = opendir($dir)) {
|
||||
while (false !== ($file = readdir($handle))) {
|
||||
if (!in_array(strtolower($file), $exclude_array)) {
|
||||
$new_file = $dir . '/' . $file;
|
||||
$object = $file;
|
||||
$object = ltrim($object, '/');
|
||||
if (is_file($new_file)) {
|
||||
$key = md5($new_file . $object, false);
|
||||
$file_list_array[$key] = array('path' => $new_file, 'file' => $object,);
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir($handle);
|
||||
}
|
||||
return $file_list_array;
|
||||
}
|
||||
|
||||
/**
|
||||
* Decode key based on the encoding type
|
||||
*
|
||||
* @param string $key
|
||||
* @param string $encoding
|
||||
* @return string
|
||||
*/
|
||||
public static function decodeKey($key, $encoding)
|
||||
{
|
||||
if ($encoding == "") {
|
||||
return $key;
|
||||
}
|
||||
|
||||
if ($encoding == "url") {
|
||||
return rawurldecode($key);
|
||||
} else {
|
||||
throw new OssException("Unrecognized encoding type: " . $encoding);
|
||||
}
|
||||
}
|
||||
}
|
25
vendor/oss-sdk/src/OSS/Http/LICENSE
vendored
Executable file
25
vendor/oss-sdk/src/OSS/Http/LICENSE
vendored
Executable file
@ -0,0 +1,25 @@
|
||||
Copyright (c) 2006-2010 Ryan Parman, Foleeo Inc., and contributors. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are
|
||||
permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this list of
|
||||
conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
of conditions and the following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
* Neither the name of Ryan Parman, Foleeo Inc. nor the names of its contributors may be used to
|
||||
endorse or promote products derived from this software without specific prior written
|
||||
permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
|
||||
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
|
||||
AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
892
vendor/oss-sdk/src/OSS/Http/RequestCore.php
vendored
Executable file
892
vendor/oss-sdk/src/OSS/Http/RequestCore.php
vendored
Executable file
@ -0,0 +1,892 @@
|
||||
<?php
|
||||
namespace OSS\Http;
|
||||
|
||||
|
||||
/**
|
||||
* Handle all HTTP requests using cURL and manages the responses.
|
||||
*
|
||||
* @version 2011.06.07
|
||||
* @copyright 2006-2011 Ryan Parman
|
||||
* @copyright 2006-2010 Foleeo Inc.
|
||||
* @copyright 2010-2011 Amazon.com, Inc. or its affiliates.
|
||||
* @copyright 2008-2011 Contributors
|
||||
* @license http://opensource.org/licenses/bsd-license.php Simplified BSD License
|
||||
*/
|
||||
class RequestCore
|
||||
{
|
||||
/**
|
||||
* The URL being requested.
|
||||
*/
|
||||
public $request_url;
|
||||
|
||||
/**
|
||||
* The headers being sent in the request.
|
||||
*/
|
||||
public $request_headers;
|
||||
|
||||
/**
|
||||
* The raw response callback headers
|
||||
*/
|
||||
public $response_raw_headers;
|
||||
|
||||
/**
|
||||
* Response body when error occurs
|
||||
*/
|
||||
public $response_error_body;
|
||||
|
||||
/**
|
||||
*The hander of write file
|
||||
*/
|
||||
public $write_file_handle;
|
||||
|
||||
/**
|
||||
* The body being sent in the request.
|
||||
*/
|
||||
public $request_body;
|
||||
|
||||
/**
|
||||
* The response returned by the request.
|
||||
*/
|
||||
public $response;
|
||||
|
||||
/**
|
||||
* The headers returned by the request.
|
||||
*/
|
||||
public $response_headers;
|
||||
|
||||
/**
|
||||
* The body returned by the request.
|
||||
*/
|
||||
public $response_body;
|
||||
|
||||
/**
|
||||
* The HTTP status code returned by the request.
|
||||
*/
|
||||
public $response_code;
|
||||
|
||||
/**
|
||||
* Additional response data.
|
||||
*/
|
||||
public $response_info;
|
||||
|
||||
/**
|
||||
* The method by which the request is being made.
|
||||
*/
|
||||
public $method;
|
||||
|
||||
/**
|
||||
* Store the proxy settings to use for the request.
|
||||
*/
|
||||
public $proxy = null;
|
||||
|
||||
/**
|
||||
* The username to use for the request.
|
||||
*/
|
||||
public $username = null;
|
||||
|
||||
/**
|
||||
* The password to use for the request.
|
||||
*/
|
||||
public $password = null;
|
||||
|
||||
/**
|
||||
* Custom CURLOPT settings.
|
||||
*/
|
||||
public $curlopts = null;
|
||||
|
||||
/**
|
||||
* The state of debug mode.
|
||||
*/
|
||||
public $debug_mode = false;
|
||||
|
||||
/**
|
||||
* The default class to use for HTTP Requests (defaults to <RequestCore>).
|
||||
*/
|
||||
public $request_class = 'OSS\Http\RequestCore';
|
||||
|
||||
/**
|
||||
* The default class to use for HTTP Responses (defaults to <ResponseCore>).
|
||||
*/
|
||||
public $response_class = 'OSS\Http\ResponseCore';
|
||||
|
||||
/**
|
||||
* Default useragent string to use.
|
||||
*/
|
||||
public $useragent = 'RequestCore/1.4.3';
|
||||
|
||||
/**
|
||||
* File to read from while streaming up.
|
||||
*/
|
||||
public $read_file = null;
|
||||
|
||||
/**
|
||||
* The resource to read from while streaming up.
|
||||
*/
|
||||
public $read_stream = null;
|
||||
|
||||
/**
|
||||
* The size of the stream to read from.
|
||||
*/
|
||||
public $read_stream_size = null;
|
||||
|
||||
/**
|
||||
* The length already read from the stream.
|
||||
*/
|
||||
public $read_stream_read = 0;
|
||||
|
||||
/**
|
||||
* File to write to while streaming down.
|
||||
*/
|
||||
public $write_file = null;
|
||||
|
||||
/**
|
||||
* The resource to write to while streaming down.
|
||||
*/
|
||||
public $write_stream = null;
|
||||
|
||||
/**
|
||||
* Stores the intended starting seek position.
|
||||
*/
|
||||
public $seek_position = null;
|
||||
|
||||
/**
|
||||
* The location of the cacert.pem file to use.
|
||||
*/
|
||||
public $cacert_location = false;
|
||||
|
||||
/**
|
||||
* The state of SSL certificate verification.
|
||||
*/
|
||||
public $ssl_verification = true;
|
||||
|
||||
/**
|
||||
* The user-defined callback function to call when a stream is read from.
|
||||
*/
|
||||
public $registered_streaming_read_callback = null;
|
||||
|
||||
/**
|
||||
* The user-defined callback function to call when a stream is written to.
|
||||
*/
|
||||
public $registered_streaming_write_callback = null;
|
||||
|
||||
/**
|
||||
* The request timeout time, which is 5,184,000 seconds,that is, 6 days by default
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $timeout = 5184000;
|
||||
|
||||
/**
|
||||
* The connection timeout time, which is 10 seconds by default
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $connect_timeout = 10;
|
||||
|
||||
/*%******************************************************************************************%*/
|
||||
// CONSTANTS
|
||||
|
||||
/**
|
||||
* GET HTTP Method
|
||||
*/
|
||||
const HTTP_GET = 'GET';
|
||||
|
||||
/**
|
||||
* POST HTTP Method
|
||||
*/
|
||||
const HTTP_POST = 'POST';
|
||||
|
||||
/**
|
||||
* PUT HTTP Method
|
||||
*/
|
||||
const HTTP_PUT = 'PUT';
|
||||
|
||||
/**
|
||||
* DELETE HTTP Method
|
||||
*/
|
||||
const HTTP_DELETE = 'DELETE';
|
||||
|
||||
/**
|
||||
* HEAD HTTP Method
|
||||
*/
|
||||
const HTTP_HEAD = 'HEAD';
|
||||
|
||||
|
||||
/*%******************************************************************************************%*/
|
||||
// CONSTRUCTOR/DESTRUCTOR
|
||||
|
||||
/**
|
||||
* Construct a new instance of this class.
|
||||
*
|
||||
* @param string $url (Optional) The URL to request or service endpoint to query.
|
||||
* @param string $proxy (Optional) The faux-url to use for proxy settings. Takes the following format: `proxy://user:pass@hostname:port`
|
||||
* @param array $helpers (Optional) An associative array of classnames to use for request, and response functionality. Gets passed in automatically by the calling class.
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function __construct($url = null, $proxy = null, $helpers = null)
|
||||
{
|
||||
// Set some default values.
|
||||
$this->request_url = $url;
|
||||
$this->method = self::HTTP_GET;
|
||||
$this->request_headers = array();
|
||||
$this->request_body = '';
|
||||
|
||||
// Set a new Request class if one was set.
|
||||
if (isset($helpers['request']) && !empty($helpers['request'])) {
|
||||
$this->request_class = $helpers['request'];
|
||||
}
|
||||
|
||||
// Set a new Request class if one was set.
|
||||
if (isset($helpers['response']) && !empty($helpers['response'])) {
|
||||
$this->response_class = $helpers['response'];
|
||||
}
|
||||
|
||||
if ($proxy) {
|
||||
$this->set_proxy($proxy);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Destruct the instance. Closes opened file handles.
|
||||
*
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
if (isset($this->read_file) && isset($this->read_stream)) {
|
||||
fclose($this->read_stream);
|
||||
}
|
||||
|
||||
if (isset($this->write_file) && isset($this->write_stream)) {
|
||||
fclose($this->write_stream);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/*%******************************************************************************************%*/
|
||||
// REQUEST METHODS
|
||||
|
||||
/**
|
||||
* Set the credentials to use for authentication.
|
||||
*
|
||||
* @param string $user (Required) The username to authenticate with.
|
||||
* @param string $pass (Required) The password to authenticate with.
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function set_credentials($user, $pass)
|
||||
{
|
||||
$this->username = $user;
|
||||
$this->password = $pass;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a custom HTTP header to the cURL request.
|
||||
*
|
||||
* @param string $key (Required) The custom HTTP header to set.
|
||||
* @param mixed $value (Required) The value to assign to the custom HTTP header.
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function add_header($key, $value)
|
||||
{
|
||||
$this->request_headers[$key] = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove an HTTP header from the cURL request.
|
||||
*
|
||||
* @param string $key (Required) The custom HTTP header to set.
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function remove_header($key)
|
||||
{
|
||||
if (isset($this->request_headers[$key])) {
|
||||
unset($this->request_headers[$key]);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the method type for the request.
|
||||
*
|
||||
* @param string $method (Required) One of the following constants: <HTTP_GET>, <HTTP_POST>, <HTTP_PUT>, <HTTP_HEAD>, <HTTP_DELETE>.
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function set_method($method)
|
||||
{
|
||||
$this->method = strtoupper($method);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a custom useragent string for the class.
|
||||
*
|
||||
* @param string $ua (Required) The useragent string to use.
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function set_useragent($ua)
|
||||
{
|
||||
$this->useragent = $ua;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the body to send in the request.
|
||||
*
|
||||
* @param string $body (Required) The textual content to send along in the body of the request.
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function set_body($body)
|
||||
{
|
||||
$this->request_body = $body;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the URL to make the request to.
|
||||
*
|
||||
* @param string $url (Required) The URL to make the request to.
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function set_request_url($url)
|
||||
{
|
||||
$this->request_url = $url;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set additional CURLOPT settings. These will merge with the default settings, and override if
|
||||
* there is a duplicate.
|
||||
*
|
||||
* @param array $curlopts (Optional) A set of key-value pairs that set `CURLOPT` options. These will merge with the existing CURLOPTs, and ones passed here will override the defaults. Keys should be the `CURLOPT_*` constants, not strings.
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function set_curlopts($curlopts)
|
||||
{
|
||||
$this->curlopts = $curlopts;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the length in bytes to read from the stream while streaming up.
|
||||
*
|
||||
* @param integer $size (Required) The length in bytes to read from the stream.
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function set_read_stream_size($size)
|
||||
{
|
||||
$this->read_stream_size = $size;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the resource to read from while streaming up. Reads the stream from its current position until
|
||||
* EOF or `$size` bytes have been read. If `$size` is not given it will be determined by <php:fstat()> and
|
||||
* <php:ftell()>.
|
||||
*
|
||||
* @param resource $resource (Required) The readable resource to read from.
|
||||
* @param integer $size (Optional) The size of the stream to read.
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function set_read_stream($resource, $size = null)
|
||||
{
|
||||
if (!isset($size) || $size < 0) {
|
||||
$stats = fstat($resource);
|
||||
|
||||
if ($stats && $stats['size'] >= 0) {
|
||||
$position = ftell($resource);
|
||||
|
||||
if ($position !== false && $position >= 0) {
|
||||
$size = $stats['size'] - $position;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->read_stream = $resource;
|
||||
|
||||
return $this->set_read_stream_size($size);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the file to read from while streaming up.
|
||||
*
|
||||
* @param string $location (Required) The readable location to read from.
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function set_read_file($location)
|
||||
{
|
||||
$this->read_file = $location;
|
||||
$read_file_handle = fopen($location, 'r');
|
||||
|
||||
return $this->set_read_stream($read_file_handle);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the resource to write to while streaming down.
|
||||
*
|
||||
* @param resource $resource (Required) The writeable resource to write to.
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function set_write_stream($resource)
|
||||
{
|
||||
$this->write_stream = $resource;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the file to write to while streaming down.
|
||||
*
|
||||
* @param string $location (Required) The writeable location to write to.
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function set_write_file($location)
|
||||
{
|
||||
$this->write_file = $location;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the proxy to use for making requests.
|
||||
*
|
||||
* @param string $proxy (Required) The faux-url to use for proxy settings. Takes the following format: `proxy://user:pass@hostname:port`
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function set_proxy($proxy)
|
||||
{
|
||||
$proxy = parse_url($proxy);
|
||||
$proxy['user'] = isset($proxy['user']) ? $proxy['user'] : null;
|
||||
$proxy['pass'] = isset($proxy['pass']) ? $proxy['pass'] : null;
|
||||
$proxy['port'] = isset($proxy['port']) ? $proxy['port'] : null;
|
||||
$this->proxy = $proxy;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the intended starting seek position.
|
||||
*
|
||||
* @param integer $position (Required) The byte-position of the stream to begin reading from.
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function set_seek_position($position)
|
||||
{
|
||||
$this->seek_position = isset($position) ? (integer)$position : null;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* A callback function that is invoked by cURL for streaming up.
|
||||
*
|
||||
* @param resource $curl_handle (Required) The cURL handle for the request.
|
||||
* @param resource $header_content (Required) The header callback result.
|
||||
* @return headers from a stream.
|
||||
*/
|
||||
public function streaming_header_callback($curl_handle, $header_content)
|
||||
{
|
||||
$code = curl_getinfo($curl_handle, CURLINFO_HTTP_CODE);
|
||||
|
||||
if (isset($this->write_file) && intval($code) / 100 == 2 && !isset($this->write_file_handle))
|
||||
{
|
||||
$this->write_file_handle = fopen($this->write_file, 'w');
|
||||
$this->set_write_stream($this->write_file_handle);
|
||||
}
|
||||
|
||||
$this->response_raw_headers .= $header_content;
|
||||
return strlen($header_content);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Register a callback function to execute whenever a data stream is read from using
|
||||
* <CFRequest::streaming_read_callback()>.
|
||||
*
|
||||
* The user-defined callback function should accept three arguments:
|
||||
*
|
||||
* <ul>
|
||||
* <li><code>$curl_handle</code> - <code>resource</code> - Required - The cURL handle resource that represents the in-progress transfer.</li>
|
||||
* <li><code>$file_handle</code> - <code>resource</code> - Required - The file handle resource that represents the file on the local file system.</li>
|
||||
* <li><code>$length</code> - <code>integer</code> - Required - The length in kilobytes of the data chunk that was transferred.</li>
|
||||
* </ul>
|
||||
*
|
||||
* @param string|array|function $callback (Required) The callback function is called by <php:call_user_func()>, so you can pass the following values: <ul>
|
||||
* <li>The name of a global function to execute, passed as a string.</li>
|
||||
* <li>A method to execute, passed as <code>array('ClassName', 'MethodName')</code>.</li>
|
||||
* <li>An anonymous function (PHP 5.3+).</li></ul>
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function register_streaming_read_callback($callback)
|
||||
{
|
||||
$this->registered_streaming_read_callback = $callback;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a callback function to execute whenever a data stream is written to using
|
||||
* <CFRequest::streaming_write_callback()>.
|
||||
*
|
||||
* The user-defined callback function should accept two arguments:
|
||||
*
|
||||
* <ul>
|
||||
* <li><code>$curl_handle</code> - <code>resource</code> - Required - The cURL handle resource that represents the in-progress transfer.</li>
|
||||
* <li><code>$length</code> - <code>integer</code> - Required - The length in kilobytes of the data chunk that was transferred.</li>
|
||||
* </ul>
|
||||
*
|
||||
* @param string|array|function $callback (Required) The callback function is called by <php:call_user_func()>, so you can pass the following values: <ul>
|
||||
* <li>The name of a global function to execute, passed as a string.</li>
|
||||
* <li>A method to execute, passed as <code>array('ClassName', 'MethodName')</code>.</li>
|
||||
* <li>An anonymous function (PHP 5.3+).</li></ul>
|
||||
* @return $this A reference to the current instance.
|
||||
*/
|
||||
public function register_streaming_write_callback($callback)
|
||||
{
|
||||
$this->registered_streaming_write_callback = $callback;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/*%******************************************************************************************%*/
|
||||
// PREPARE, SEND, AND PROCESS REQUEST
|
||||
|
||||
/**
|
||||
* A callback function that is invoked by cURL for streaming up.
|
||||
*
|
||||
* @param resource $curl_handle (Required) The cURL handle for the request.
|
||||
* @param resource $file_handle (Required) The open file handle resource.
|
||||
* @param integer $length (Required) The maximum number of bytes to read.
|
||||
* @return binary Binary data from a stream.
|
||||
*/
|
||||
public function streaming_read_callback($curl_handle, $file_handle, $length)
|
||||
{
|
||||
// Once we've sent as much as we're supposed to send...
|
||||
if ($this->read_stream_read >= $this->read_stream_size) {
|
||||
// Send EOF
|
||||
return '';
|
||||
}
|
||||
|
||||
// If we're at the beginning of an upload and need to seek...
|
||||
if ($this->read_stream_read == 0 && isset($this->seek_position) && $this->seek_position !== ftell($this->read_stream)) {
|
||||
if (fseek($this->read_stream, $this->seek_position) !== 0) {
|
||||
throw new RequestCore_Exception('The stream does not support seeking and is either not at the requested position or the position is unknown.');
|
||||
}
|
||||
}
|
||||
|
||||
$read = fread($this->read_stream, min($this->read_stream_size - $this->read_stream_read, $length)); // Remaining upload data or cURL's requested chunk size
|
||||
$this->read_stream_read += strlen($read);
|
||||
|
||||
$out = $read === false ? '' : $read;
|
||||
|
||||
// Execute callback function
|
||||
if ($this->registered_streaming_read_callback) {
|
||||
call_user_func($this->registered_streaming_read_callback, $curl_handle, $file_handle, $out);
|
||||
}
|
||||
|
||||
return $out;
|
||||
}
|
||||
|
||||
/**
|
||||
* A callback function that is invoked by cURL for streaming down.
|
||||
*
|
||||
* @param resource $curl_handle (Required) The cURL handle for the request.
|
||||
* @param binary $data (Required) The data to write.
|
||||
* @return integer The number of bytes written.
|
||||
*/
|
||||
public function streaming_write_callback($curl_handle, $data)
|
||||
{
|
||||
$code = curl_getinfo($curl_handle, CURLINFO_HTTP_CODE);
|
||||
|
||||
if (intval($code) / 100 != 2)
|
||||
{
|
||||
$this->response_error_body .= $data;
|
||||
return strlen($data);
|
||||
}
|
||||
|
||||
$length = strlen($data);
|
||||
$written_total = 0;
|
||||
$written_last = 0;
|
||||
|
||||
while ($written_total < $length) {
|
||||
$written_last = fwrite($this->write_stream, substr($data, $written_total));
|
||||
|
||||
if ($written_last === false) {
|
||||
return $written_total;
|
||||
}
|
||||
|
||||
$written_total += $written_last;
|
||||
}
|
||||
|
||||
// Execute callback function
|
||||
if ($this->registered_streaming_write_callback) {
|
||||
call_user_func($this->registered_streaming_write_callback, $curl_handle, $written_total);
|
||||
}
|
||||
|
||||
return $written_total;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare and adds the details of the cURL request. This can be passed along to a <php:curl_multi_exec()>
|
||||
* function.
|
||||
*
|
||||
* @return resource The handle for the cURL object.
|
||||
*
|
||||
*/
|
||||
public function prep_request()
|
||||
{
|
||||
$curl_handle = curl_init();
|
||||
|
||||
// Set default options.
|
||||
curl_setopt($curl_handle, CURLOPT_URL, $this->request_url);
|
||||
curl_setopt($curl_handle, CURLOPT_FILETIME, true);
|
||||
curl_setopt($curl_handle, CURLOPT_FRESH_CONNECT, false);
|
||||
// curl_setopt($curl_handle, CURLOPT_CLOSEPOLICY, CURLCLOSEPOLICY_LEAST_RECENTLY_USED);
|
||||
curl_setopt($curl_handle, CURLOPT_MAXREDIRS, 5);
|
||||
curl_setopt($curl_handle, CURLOPT_HEADER, true);
|
||||
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($curl_handle, CURLOPT_TIMEOUT, $this->timeout);
|
||||
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, $this->connect_timeout);
|
||||
curl_setopt($curl_handle, CURLOPT_NOSIGNAL, true);
|
||||
curl_setopt($curl_handle, CURLOPT_REFERER, $this->request_url);
|
||||
curl_setopt($curl_handle, CURLOPT_USERAGENT, $this->useragent);
|
||||
curl_setopt($curl_handle, CURLOPT_HEADERFUNCTION, array($this, 'streaming_header_callback'));
|
||||
curl_setopt($curl_handle, CURLOPT_READFUNCTION, array($this, 'streaming_read_callback'));
|
||||
|
||||
// Verification of the SSL cert
|
||||
if ($this->ssl_verification) {
|
||||
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, true);
|
||||
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYHOST, 2);
|
||||
} else {
|
||||
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYHOST, false);
|
||||
}
|
||||
|
||||
// chmod the file as 0755
|
||||
if ($this->cacert_location === true) {
|
||||
curl_setopt($curl_handle, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem');
|
||||
} elseif (is_string($this->cacert_location)) {
|
||||
curl_setopt($curl_handle, CURLOPT_CAINFO, $this->cacert_location);
|
||||
}
|
||||
|
||||
// Debug mode
|
||||
if ($this->debug_mode) {
|
||||
curl_setopt($curl_handle, CURLOPT_VERBOSE, true);
|
||||
}
|
||||
|
||||
// Handle open_basedir & safe mode
|
||||
if (!ini_get('safe_mode') && !ini_get('open_basedir')) {
|
||||
curl_setopt($curl_handle, CURLOPT_FOLLOWLOCATION, true);
|
||||
}
|
||||
|
||||
// Enable a proxy connection if requested.
|
||||
if ($this->proxy) {
|
||||
$host = $this->proxy['host'];
|
||||
$host .= ($this->proxy['port']) ? ':' . $this->proxy['port'] : '';
|
||||
curl_setopt($curl_handle, CURLOPT_PROXY, $host);
|
||||
|
||||
if (isset($this->proxy['user']) && isset($this->proxy['pass'])) {
|
||||
curl_setopt($curl_handle, CURLOPT_PROXYUSERPWD, $this->proxy['user'] . ':' . $this->proxy['pass']);
|
||||
}
|
||||
}
|
||||
|
||||
// Set credentials for HTTP Basic/Digest Authentication.
|
||||
if ($this->username && $this->password) {
|
||||
curl_setopt($curl_handle, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
|
||||
curl_setopt($curl_handle, CURLOPT_USERPWD, $this->username . ':' . $this->password);
|
||||
}
|
||||
|
||||
// Handle the encoding if we can.
|
||||
if (extension_loaded('zlib')) {
|
||||
curl_setopt($curl_handle, CURLOPT_ENCODING, '');
|
||||
}
|
||||
|
||||
// Process custom headers
|
||||
if (isset($this->request_headers) && count($this->request_headers)) {
|
||||
$temp_headers = array();
|
||||
|
||||
foreach ($this->request_headers as $k => $v) {
|
||||
$temp_headers[] = $k . ': ' . $v;
|
||||
}
|
||||
|
||||
curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $temp_headers);
|
||||
}
|
||||
|
||||
switch ($this->method) {
|
||||
case self::HTTP_PUT:
|
||||
//unset($this->read_stream);
|
||||
curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, 'PUT');
|
||||
if (isset($this->read_stream)) {
|
||||
if (!isset($this->read_stream_size) || $this->read_stream_size < 0) {
|
||||
throw new RequestCore_Exception('The stream size for the streaming upload cannot be determined.');
|
||||
}
|
||||
curl_setopt($curl_handle, CURLOPT_INFILESIZE, $this->read_stream_size);
|
||||
curl_setopt($curl_handle, CURLOPT_UPLOAD, true);
|
||||
} else {
|
||||
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $this->request_body);
|
||||
}
|
||||
break;
|
||||
|
||||
case self::HTTP_POST:
|
||||
curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, 'POST');
|
||||
if (isset($this->read_stream)) {
|
||||
if (!isset($this->read_stream_size) || $this->read_stream_size < 0) {
|
||||
throw new RequestCore_Exception('The stream size for the streaming upload cannot be determined.');
|
||||
}
|
||||
curl_setopt($curl_handle, CURLOPT_INFILESIZE, $this->read_stream_size);
|
||||
curl_setopt($curl_handle, CURLOPT_UPLOAD, true);
|
||||
} else {
|
||||
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $this->request_body);
|
||||
}
|
||||
break;
|
||||
|
||||
case self::HTTP_HEAD:
|
||||
curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, self::HTTP_HEAD);
|
||||
curl_setopt($curl_handle, CURLOPT_NOBODY, 1);
|
||||
break;
|
||||
|
||||
default: // Assumed GET
|
||||
curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, $this->method);
|
||||
if (isset($this->write_stream) || isset($this->write_file)) {
|
||||
curl_setopt($curl_handle, CURLOPT_WRITEFUNCTION, array($this, 'streaming_write_callback'));
|
||||
curl_setopt($curl_handle, CURLOPT_HEADER, false);
|
||||
} else {
|
||||
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $this->request_body);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Merge in the CURLOPTs
|
||||
if (isset($this->curlopts) && sizeof($this->curlopts) > 0) {
|
||||
foreach ($this->curlopts as $k => $v) {
|
||||
curl_setopt($curl_handle, $k, $v);
|
||||
}
|
||||
}
|
||||
|
||||
return $curl_handle;
|
||||
}
|
||||
|
||||
/**
|
||||
* Take the post-processed cURL data and break it down into useful header/body/info chunks. Uses the
|
||||
* data stored in the `curl_handle` and `response` properties unless replacement data is passed in via
|
||||
* parameters.
|
||||
*
|
||||
* @param resource $curl_handle (Optional) The reference to the already executed cURL request.
|
||||
* @param string $response (Optional) The actual response content itself that needs to be parsed.
|
||||
* @return ResponseCore A <ResponseCore> object containing a parsed HTTP response.
|
||||
*/
|
||||
public function process_response($curl_handle = null, $response = null)
|
||||
{
|
||||
// Accept a custom one if it's passed.
|
||||
if ($curl_handle && $response) {
|
||||
$this->response = $response;
|
||||
}
|
||||
|
||||
// As long as this came back as a valid resource...
|
||||
if (is_resource($curl_handle)) {
|
||||
// Determine what's what.
|
||||
$header_size = curl_getinfo($curl_handle, CURLINFO_HEADER_SIZE);
|
||||
$this->response_headers = substr($this->response, 0, $header_size);
|
||||
$this->response_body = substr($this->response, $header_size);
|
||||
$this->response_code = curl_getinfo($curl_handle, CURLINFO_HTTP_CODE);
|
||||
$this->response_info = curl_getinfo($curl_handle);
|
||||
|
||||
if (intval($this->response_code) / 100 != 2 && isset($this->write_file))
|
||||
{
|
||||
$this->response_headers = $this->response_raw_headers;
|
||||
$this->response_body = $this->response_error_body;
|
||||
}
|
||||
|
||||
// Parse out the headers
|
||||
$this->response_headers = explode("\r\n\r\n", trim($this->response_headers));
|
||||
$this->response_headers = array_pop($this->response_headers);
|
||||
$this->response_headers = explode("\r\n", $this->response_headers);
|
||||
array_shift($this->response_headers);
|
||||
|
||||
// Loop through and split up the headers.
|
||||
$header_assoc = array();
|
||||
foreach ($this->response_headers as $header) {
|
||||
$kv = explode(': ', $header);
|
||||
$header_assoc[strtolower($kv[0])] = isset($kv[1]) ? $kv[1] : '';
|
||||
}
|
||||
|
||||
// Reset the headers to the appropriate property.
|
||||
$this->response_headers = $header_assoc;
|
||||
$this->response_headers['info'] = $this->response_info;
|
||||
$this->response_headers['info']['method'] = $this->method;
|
||||
|
||||
if ($curl_handle && $response) {
|
||||
return new ResponseCore($this->response_headers, $this->response_body, $this->response_code);
|
||||
}
|
||||
}
|
||||
|
||||
// Return false
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send the request, calling necessary utility functions to update built-in properties.
|
||||
*
|
||||
* @param boolean $parse (Optional) Whether to parse the response with ResponseCore or not.
|
||||
* @return string The resulting unparsed data from the request.
|
||||
*/
|
||||
public function send_request($parse = false)
|
||||
{
|
||||
set_time_limit(0);
|
||||
|
||||
$curl_handle = $this->prep_request();
|
||||
$this->response = curl_exec($curl_handle);
|
||||
if ($this->response === false) {
|
||||
throw new RequestCore_Exception('cURL resource: ' . (string)$curl_handle . '; cURL error: ' . curl_error($curl_handle) . ' (' . curl_errno($curl_handle) . ')');
|
||||
}
|
||||
|
||||
$parsed_response = $this->process_response($curl_handle, $this->response);
|
||||
curl_close($curl_handle);
|
||||
|
||||
if ($parse) {
|
||||
return $parsed_response;
|
||||
}
|
||||
return $this->response;
|
||||
}
|
||||
|
||||
/*%******************************************************************************************%*/
|
||||
// RESPONSE METHODS
|
||||
|
||||
/**
|
||||
* Get the HTTP response headers from the request.
|
||||
*
|
||||
* @param string $header (Optional) A specific header value to return. Defaults to all headers.
|
||||
* @return string|array All or selected header values.
|
||||
*/
|
||||
public function get_response_header($header = null)
|
||||
{
|
||||
if ($header) {
|
||||
return $this->response_headers[strtolower($header)];
|
||||
}
|
||||
return $this->response_headers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the HTTP response body from the request.
|
||||
*
|
||||
* @return string The response body.
|
||||
*/
|
||||
public function get_response_body()
|
||||
{
|
||||
return $this->response_body;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the HTTP response code from the request.
|
||||
*
|
||||
* @return string The HTTP response code.
|
||||
*/
|
||||
public function get_response_code()
|
||||
{
|
||||
return $this->response_code;
|
||||
}
|
||||
}
|
8
vendor/oss-sdk/src/OSS/Http/RequestCore_Exception.php
vendored
Executable file
8
vendor/oss-sdk/src/OSS/Http/RequestCore_Exception.php
vendored
Executable file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Http;
|
||||
|
||||
class RequestCore_Exception extends \Exception
|
||||
{
|
||||
|
||||
}
|
56
vendor/oss-sdk/src/OSS/Http/ResponseCore.php
vendored
Executable file
56
vendor/oss-sdk/src/OSS/Http/ResponseCore.php
vendored
Executable file
@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Http;
|
||||
|
||||
/**
|
||||
* Container for all response-related methods.
|
||||
*/
|
||||
class ResponseCore
|
||||
{
|
||||
/**
|
||||
* Store the HTTP header information.
|
||||
*/
|
||||
public $header;
|
||||
|
||||
/**
|
||||
* Store the SimpleXML response.
|
||||
*/
|
||||
public $body;
|
||||
|
||||
/**
|
||||
* Store the HTTP response code.
|
||||
*/
|
||||
public $status;
|
||||
|
||||
/**
|
||||
* Construct a new instance of this class.
|
||||
*
|
||||
* @param array $header (Required) Associative array of HTTP headers (typically returned by <RequestCore::get_response_header()>).
|
||||
* @param string $body (Required) XML-formatted response from AWS.
|
||||
* @param integer $status (Optional) HTTP response status code from the request.
|
||||
* @return Mixed Contains an <php:array> `header` property (HTTP headers as an associative array), a <php:SimpleXMLElement> or <php:string> `body` property, and an <php:integer> `status` code.
|
||||
*/
|
||||
public function __construct($header, $body, $status = null)
|
||||
{
|
||||
$this->header = $header;
|
||||
$this->body = $body;
|
||||
$this->status = $status;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Did we receive the status code we expected?
|
||||
*
|
||||
* @param integer|array $codes (Optional) The status code(s) to expect. Pass an <php:integer> for a single acceptable value, or an <php:array> of integers for multiple acceptable values.
|
||||
* @return boolean Whether we received the expected status code or not.
|
||||
*/
|
||||
public function isOK($codes = array(200, 201, 204, 206))
|
||||
{
|
||||
if (is_array($codes)) {
|
||||
return in_array($this->status, $codes);
|
||||
}
|
||||
|
||||
return $this->status === $codes;
|
||||
}
|
||||
}
|
78
vendor/oss-sdk/src/OSS/Model/BucketInfo.php
vendored
Executable file
78
vendor/oss-sdk/src/OSS/Model/BucketInfo.php
vendored
Executable file
@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
|
||||
/**
|
||||
* Bucket information class. This is the type of element in BucketListInfo's
|
||||
*
|
||||
* Class BucketInfo
|
||||
* @package OSS\Model
|
||||
*/
|
||||
class BucketInfo
|
||||
{
|
||||
/**
|
||||
* BucketInfo constructor.
|
||||
*
|
||||
* @param string $location
|
||||
* @param string $name
|
||||
* @param string $createDate
|
||||
*/
|
||||
public function __construct($location, $name, $createDate)
|
||||
{
|
||||
$this->location = $location;
|
||||
$this->name = $name;
|
||||
$this->createDate = $createDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get bucket location
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getLocation()
|
||||
{
|
||||
return $this->location;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get bucket name
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get bucket creation time.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getCreateDate()
|
||||
{
|
||||
return $this->createDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* bucket region
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $location;
|
||||
/**
|
||||
* bucket name
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* bucket creation time
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $createDate;
|
||||
|
||||
}
|
39
vendor/oss-sdk/src/OSS/Model/BucketListInfo.php
vendored
Executable file
39
vendor/oss-sdk/src/OSS/Model/BucketListInfo.php
vendored
Executable file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
/**
|
||||
* Class BucketListInfo
|
||||
*
|
||||
* It's the type of return value of ListBuckets.
|
||||
*
|
||||
* @package OSS\Model
|
||||
*/
|
||||
class BucketListInfo
|
||||
{
|
||||
/**
|
||||
* BucketListInfo constructor.
|
||||
* @param array $bucketList
|
||||
*/
|
||||
public function __construct(array $bucketList)
|
||||
{
|
||||
$this->bucketList = $bucketList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the BucketInfo list
|
||||
*
|
||||
* @return BucketInfo[]
|
||||
*/
|
||||
public function getBucketList()
|
||||
{
|
||||
return $this->bucketList;
|
||||
}
|
||||
|
||||
/**
|
||||
* BucketInfo list
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private $bucketList = array();
|
||||
}
|
99
vendor/oss-sdk/src/OSS/Model/CnameConfig.php
vendored
Executable file
99
vendor/oss-sdk/src/OSS/Model/CnameConfig.php
vendored
Executable file
@ -0,0 +1,99 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
|
||||
use OSS\Core\OssException;
|
||||
|
||||
/**
|
||||
* Class CnameConfig
|
||||
* @package OSS\Model
|
||||
*
|
||||
* TODO: fix link
|
||||
* @link http://help.aliyun.com/document_detail/oss/api-reference/cors/PutBucketcors.html
|
||||
*/
|
||||
class CnameConfig implements XmlConfig
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->cnameList = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @example
|
||||
* array(2) {
|
||||
* [0]=>
|
||||
* array(3) {
|
||||
* ["Domain"]=>
|
||||
* string(11) "www.foo.com"
|
||||
* ["Status"]=>
|
||||
* string(7) "enabled"
|
||||
* ["LastModified"]=>
|
||||
* string(8) "20150101"
|
||||
* }
|
||||
* [1]=>
|
||||
* array(3) {
|
||||
* ["Domain"]=>
|
||||
* string(7) "bar.com"
|
||||
* ["Status"]=>
|
||||
* string(8) "disabled"
|
||||
* ["LastModified"]=>
|
||||
* string(8) "20160101"
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
public function getCnames()
|
||||
{
|
||||
return $this->cnameList;
|
||||
}
|
||||
|
||||
|
||||
public function addCname($cname)
|
||||
{
|
||||
if (count($this->cnameList) >= self::OSS_MAX_RULES) {
|
||||
throw new OssException(
|
||||
"num of cname in the config exceeds self::OSS_MAX_RULES: " . strval(self::OSS_MAX_RULES));
|
||||
}
|
||||
$this->cnameList[] = array('Domain' => $cname);
|
||||
}
|
||||
|
||||
public function parseFromXml($strXml)
|
||||
{
|
||||
$xml = simplexml_load_string($strXml);
|
||||
if (!isset($xml->Cname)) return;
|
||||
foreach ($xml->Cname as $entry) {
|
||||
$cname = array();
|
||||
foreach ($entry as $key => $value) {
|
||||
$cname[strval($key)] = strval($value);
|
||||
}
|
||||
$this->cnameList[] = $cname;
|
||||
}
|
||||
}
|
||||
|
||||
public function serializeToXml()
|
||||
{
|
||||
$strXml = <<<EOF
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<BucketCnameConfiguration>
|
||||
</BucketCnameConfiguration>
|
||||
EOF;
|
||||
$xml = new \SimpleXMLElement($strXml);
|
||||
foreach ($this->cnameList as $cname) {
|
||||
$node = $xml->addChild('Cname');
|
||||
foreach ($cname as $key => $value) {
|
||||
$node->addChild($key, $value);
|
||||
}
|
||||
}
|
||||
return $xml->asXML();
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return $this->serializeToXml();
|
||||
}
|
||||
|
||||
const OSS_MAX_RULES = 10;
|
||||
|
||||
private $cnameList = array();
|
||||
}
|
113
vendor/oss-sdk/src/OSS/Model/CorsConfig.php
vendored
Executable file
113
vendor/oss-sdk/src/OSS/Model/CorsConfig.php
vendored
Executable file
@ -0,0 +1,113 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
|
||||
use OSS\Core\OssException;
|
||||
|
||||
/**
|
||||
* Class CorsConfig
|
||||
* @package OSS\Model
|
||||
*
|
||||
* @link http://help.aliyun.com/document_detail/oss/api-reference/cors/PutBucketcors.html
|
||||
*/
|
||||
class CorsConfig implements XmlConfig
|
||||
{
|
||||
/**
|
||||
* CorsConfig constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->rules = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get CorsRule list
|
||||
*
|
||||
* @return CorsRule[]
|
||||
*/
|
||||
public function getRules()
|
||||
{
|
||||
return $this->rules;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add a new CorsRule
|
||||
*
|
||||
* @param CorsRule $rule
|
||||
* @throws OssException
|
||||
*/
|
||||
public function addRule($rule)
|
||||
{
|
||||
if (count($this->rules) >= self::OSS_MAX_RULES) {
|
||||
throw new OssException("num of rules in the config exceeds self::OSS_MAX_RULES: " . strval(self::OSS_MAX_RULES));
|
||||
}
|
||||
$this->rules[] = $rule;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse CorsConfig from the xml.
|
||||
*
|
||||
* @param string $strXml
|
||||
* @throws OssException
|
||||
* @return null
|
||||
*/
|
||||
public function parseFromXml($strXml)
|
||||
{
|
||||
$xml = simplexml_load_string($strXml);
|
||||
if (!isset($xml->CORSRule)) return;
|
||||
foreach ($xml->CORSRule as $rule) {
|
||||
$corsRule = new CorsRule();
|
||||
foreach ($rule as $key => $value) {
|
||||
if ($key === self::OSS_CORS_ALLOWED_HEADER) {
|
||||
$corsRule->addAllowedHeader(strval($value));
|
||||
} elseif ($key === self::OSS_CORS_ALLOWED_METHOD) {
|
||||
$corsRule->addAllowedMethod(strval($value));
|
||||
} elseif ($key === self::OSS_CORS_ALLOWED_ORIGIN) {
|
||||
$corsRule->addAllowedOrigin(strval($value));
|
||||
} elseif ($key === self::OSS_CORS_EXPOSE_HEADER) {
|
||||
$corsRule->addExposeHeader(strval($value));
|
||||
} elseif ($key === self::OSS_CORS_MAX_AGE_SECONDS) {
|
||||
$corsRule->setMaxAgeSeconds(strval($value));
|
||||
}
|
||||
}
|
||||
$this->addRule($corsRule);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Serialize the object into xml string.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function serializeToXml()
|
||||
{
|
||||
$xml = new \SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><CORSConfiguration></CORSConfiguration>');
|
||||
foreach ($this->rules as $rule) {
|
||||
$xmlRule = $xml->addChild('CORSRule');
|
||||
$rule->appendToXml($xmlRule);
|
||||
}
|
||||
return $xml->asXML();
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return $this->serializeToXml();
|
||||
}
|
||||
|
||||
const OSS_CORS_ALLOWED_ORIGIN = 'AllowedOrigin';
|
||||
const OSS_CORS_ALLOWED_METHOD = 'AllowedMethod';
|
||||
const OSS_CORS_ALLOWED_HEADER = 'AllowedHeader';
|
||||
const OSS_CORS_EXPOSE_HEADER = 'ExposeHeader';
|
||||
const OSS_CORS_MAX_AGE_SECONDS = 'MaxAgeSeconds';
|
||||
const OSS_MAX_RULES = 10;
|
||||
|
||||
/**
|
||||
* CorsRule list
|
||||
*
|
||||
* @var CorsRule[]
|
||||
*/
|
||||
private $rules = array();
|
||||
}
|
150
vendor/oss-sdk/src/OSS/Model/CorsRule.php
vendored
Executable file
150
vendor/oss-sdk/src/OSS/Model/CorsRule.php
vendored
Executable file
@ -0,0 +1,150 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
use OSS\Core\OssException;
|
||||
|
||||
|
||||
/**
|
||||
* Class CorsRule
|
||||
* @package OSS\Model
|
||||
* @link http://help.aliyun.com/document_detail/oss/api-reference/cors/PutBucketcors.html
|
||||
*/
|
||||
class CorsRule
|
||||
{
|
||||
/**
|
||||
* Add an allowedOrigin rule
|
||||
*
|
||||
* @param string $allowedOrigin
|
||||
*/
|
||||
public function addAllowedOrigin($allowedOrigin)
|
||||
{
|
||||
if (!empty($allowedOrigin)) {
|
||||
$this->allowedOrigins[] = $allowedOrigin;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an allowedMethod rule
|
||||
*
|
||||
* @param string $allowedMethod
|
||||
*/
|
||||
public function addAllowedMethod($allowedMethod)
|
||||
{
|
||||
if (!empty($allowedMethod)) {
|
||||
$this->allowedMethods[] = $allowedMethod;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an allowedHeader rule
|
||||
*
|
||||
* @param string $allowedHeader
|
||||
*/
|
||||
public function addAllowedHeader($allowedHeader)
|
||||
{
|
||||
if (!empty($allowedHeader)) {
|
||||
$this->allowedHeaders[] = $allowedHeader;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an exposeHeader rule
|
||||
*
|
||||
* @param string $exposeHeader
|
||||
*/
|
||||
public function addExposeHeader($exposeHeader)
|
||||
{
|
||||
if (!empty($exposeHeader)) {
|
||||
$this->exposeHeaders[] = $exposeHeader;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getMaxAgeSeconds()
|
||||
{
|
||||
return $this->maxAgeSeconds;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $maxAgeSeconds
|
||||
*/
|
||||
public function setMaxAgeSeconds($maxAgeSeconds)
|
||||
{
|
||||
$this->maxAgeSeconds = $maxAgeSeconds;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the AllowedHeaders list
|
||||
*
|
||||
* @return string[]
|
||||
*/
|
||||
public function getAllowedHeaders()
|
||||
{
|
||||
return $this->allowedHeaders;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the AllowedOrigins list
|
||||
*
|
||||
* @return string[]
|
||||
*/
|
||||
public function getAllowedOrigins()
|
||||
{
|
||||
return $this->allowedOrigins;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the AllowedMethods list
|
||||
*
|
||||
* @return string[]
|
||||
*/
|
||||
public function getAllowedMethods()
|
||||
{
|
||||
return $this->allowedMethods;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the ExposeHeaders list
|
||||
*
|
||||
* @return string[]
|
||||
*/
|
||||
public function getExposeHeaders()
|
||||
{
|
||||
return $this->exposeHeaders;
|
||||
}
|
||||
|
||||
/**
|
||||
* Serialize all the rules into the xml represented by parameter $xmlRule
|
||||
*
|
||||
* @param \SimpleXMLElement $xmlRule
|
||||
* @throws OssException
|
||||
*/
|
||||
public function appendToXml(&$xmlRule)
|
||||
{
|
||||
if (!isset($this->maxAgeSeconds)) {
|
||||
throw new OssException("maxAgeSeconds is not set in the Rule");
|
||||
}
|
||||
foreach ($this->allowedOrigins as $allowedOrigin) {
|
||||
$xmlRule->addChild(CorsConfig::OSS_CORS_ALLOWED_ORIGIN, $allowedOrigin);
|
||||
}
|
||||
foreach ($this->allowedMethods as $allowedMethod) {
|
||||
$xmlRule->addChild(CorsConfig::OSS_CORS_ALLOWED_METHOD, $allowedMethod);
|
||||
}
|
||||
foreach ($this->allowedHeaders as $allowedHeader) {
|
||||
$xmlRule->addChild(CorsConfig::OSS_CORS_ALLOWED_HEADER, $allowedHeader);
|
||||
}
|
||||
foreach ($this->exposeHeaders as $exposeHeader) {
|
||||
$xmlRule->addChild(CorsConfig::OSS_CORS_EXPOSE_HEADER, $exposeHeader);
|
||||
}
|
||||
$xmlRule->addChild(CorsConfig::OSS_CORS_MAX_AGE_SECONDS, strval($this->maxAgeSeconds));
|
||||
}
|
||||
|
||||
private $allowedHeaders = array();
|
||||
private $allowedOrigins = array();
|
||||
private $allowedMethods = array();
|
||||
private $exposeHeaders = array();
|
||||
private $maxAgeSeconds = null;
|
||||
}
|
34
vendor/oss-sdk/src/OSS/Model/GetLiveChannelHistory.php
vendored
Executable file
34
vendor/oss-sdk/src/OSS/Model/GetLiveChannelHistory.php
vendored
Executable file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
/**
|
||||
* Class GetLiveChannelHistory
|
||||
* @package OSS\Model
|
||||
*/
|
||||
class GetLiveChannelHistory implements XmlConfig
|
||||
{
|
||||
public function getLiveRecordList()
|
||||
{
|
||||
return $this->liveRecordList;
|
||||
}
|
||||
|
||||
public function parseFromXml($strXml)
|
||||
{
|
||||
$xml = simplexml_load_string($strXml);
|
||||
|
||||
if (isset($xml->LiveRecord)) {
|
||||
foreach ($xml->LiveRecord as $record) {
|
||||
$liveRecord = new LiveChannelHistory();
|
||||
$liveRecord->parseFromXmlNode($record);
|
||||
$this->liveRecordList[] = $liveRecord;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function serializeToXml()
|
||||
{
|
||||
throw new OssException("Not implemented.");
|
||||
}
|
||||
|
||||
private $liveRecordList = array();
|
||||
}
|
68
vendor/oss-sdk/src/OSS/Model/GetLiveChannelInfo.php
vendored
Executable file
68
vendor/oss-sdk/src/OSS/Model/GetLiveChannelInfo.php
vendored
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
/**
|
||||
* Class GetLiveChannelInfo
|
||||
* @package OSS\Model
|
||||
*/
|
||||
class GetLiveChannelInfo implements XmlConfig
|
||||
{
|
||||
public function getDescription()
|
||||
{
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
public function getStatus()
|
||||
{
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
public function getType()
|
||||
{
|
||||
return $this->type;
|
||||
}
|
||||
|
||||
public function getFragDuration()
|
||||
{
|
||||
return $this->fragDuration;
|
||||
}
|
||||
|
||||
public function getFragCount()
|
||||
{
|
||||
return $this->fragCount;
|
||||
}
|
||||
|
||||
public function getPlayListName()
|
||||
{
|
||||
return $this->playlistName;
|
||||
}
|
||||
|
||||
public function parseFromXml($strXml)
|
||||
{
|
||||
$xml = simplexml_load_string($strXml);
|
||||
|
||||
$this->description = strval($xml->Description);
|
||||
$this->status = strval($xml->Status);
|
||||
|
||||
if (isset($xml->Target)) {
|
||||
foreach ($xml->Target as $target) {
|
||||
$this->type = strval($target->Type);
|
||||
$this->fragDuration = strval($target->FragDuration);
|
||||
$this->fragCount = strval($target->FragCount);
|
||||
$this->playlistName = strval($target->PlaylistName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function serializeToXml()
|
||||
{
|
||||
throw new OssException("Not implemented.");
|
||||
}
|
||||
|
||||
private $description;
|
||||
private $status;
|
||||
private $type;
|
||||
private $fragDuration;
|
||||
private $fragCount;
|
||||
private $playlistName;
|
||||
}
|
107
vendor/oss-sdk/src/OSS/Model/GetLiveChannelStatus.php
vendored
Executable file
107
vendor/oss-sdk/src/OSS/Model/GetLiveChannelStatus.php
vendored
Executable file
@ -0,0 +1,107 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
/**
|
||||
* Class GetLiveChannelStatus
|
||||
* @package OSS\Model
|
||||
*/
|
||||
class GetLiveChannelStatus implements XmlConfig
|
||||
{
|
||||
public function getStatus()
|
||||
{
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
public function getConnectedTime()
|
||||
{
|
||||
return $this->connectedTime;
|
||||
}
|
||||
|
||||
public function getRemoteAddr()
|
||||
{
|
||||
return $this->remoteAddr;
|
||||
}
|
||||
|
||||
public function getVideoWidth()
|
||||
{
|
||||
return $this->videoWidth;
|
||||
}
|
||||
public function getVideoHeight()
|
||||
{
|
||||
return $this->videoHeight;
|
||||
}
|
||||
public function getVideoFrameRate()
|
||||
{
|
||||
return $this->videoFrameRate;
|
||||
}
|
||||
public function getVideoBandwidth()
|
||||
{
|
||||
return $this->videoBandwidth;
|
||||
}
|
||||
public function getVideoCodec()
|
||||
{
|
||||
return $this->videoCodec;
|
||||
}
|
||||
|
||||
public function getAudioBandwidth()
|
||||
{
|
||||
return $this->audioBandwidth;
|
||||
}
|
||||
public function getAudioSampleRate()
|
||||
{
|
||||
return $this->audioSampleRate;
|
||||
}
|
||||
public function getAudioCodec()
|
||||
{
|
||||
return $this->audioCodec;
|
||||
}
|
||||
|
||||
|
||||
public function parseFromXml($strXml)
|
||||
{
|
||||
$xml = simplexml_load_string($strXml);
|
||||
$this->status = strval($xml->Status);
|
||||
$this->connectedTime = strval($xml->ConnectedTime);
|
||||
$this->remoteAddr = strval($xml->RemoteAddr);
|
||||
|
||||
if (isset($xml->Video)) {
|
||||
foreach ($xml->Video as $video) {
|
||||
$this->videoWidth = intval($video->Width);
|
||||
$this->videoHeight = intval($video->Height);
|
||||
$this->videoFrameRate = intval($video->FrameRate);
|
||||
$this->videoBandwidth = intval($video->Bandwidth);
|
||||
$this->videoCodec = strval($video->Codec);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($xml->Video)) {
|
||||
foreach ($xml->Audio as $audio) {
|
||||
$this->audioBandwidth = intval($audio->Bandwidth);
|
||||
$this->audioSampleRate = intval($audio->SampleRate);
|
||||
$this->audioCodec = strval($audio->Codec);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function serializeToXml()
|
||||
{
|
||||
throw new OssException("Not implemented.");
|
||||
}
|
||||
|
||||
private $status;
|
||||
private $connectedTime;
|
||||
private $remoteAddr;
|
||||
|
||||
private $videoWidth;
|
||||
private $videoHeight;
|
||||
private $videoFrameRate;
|
||||
private $videoBandwidth;
|
||||
private $videoCodec;
|
||||
|
||||
private $audioBandwidth;
|
||||
private $audioSampleRate;
|
||||
private $audioCodec;
|
||||
|
||||
|
||||
}
|
88
vendor/oss-sdk/src/OSS/Model/LifecycleAction.php
vendored
Executable file
88
vendor/oss-sdk/src/OSS/Model/LifecycleAction.php
vendored
Executable file
@ -0,0 +1,88 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
/**
|
||||
* Class LifecycleAction
|
||||
* @package OSS\Model
|
||||
* @link http://help.aliyun.com/document_detail/oss/api-reference/bucket/PutBucketLifecycle.html
|
||||
*/
|
||||
class LifecycleAction
|
||||
{
|
||||
/**
|
||||
* LifecycleAction constructor.
|
||||
* @param string $action
|
||||
* @param string $timeSpec
|
||||
* @param string $timeValue
|
||||
*/
|
||||
public function __construct($action, $timeSpec, $timeValue)
|
||||
{
|
||||
$this->action = $action;
|
||||
$this->timeSpec = $timeSpec;
|
||||
$this->timeValue = $timeValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return LifecycleAction
|
||||
*/
|
||||
public function getAction()
|
||||
{
|
||||
return $this->action;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $action
|
||||
*/
|
||||
public function setAction($action)
|
||||
{
|
||||
$this->action = $action;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getTimeSpec()
|
||||
{
|
||||
return $this->timeSpec;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $timeSpec
|
||||
*/
|
||||
public function setTimeSpec($timeSpec)
|
||||
{
|
||||
$this->timeSpec = $timeSpec;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getTimeValue()
|
||||
{
|
||||
return $this->timeValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $timeValue
|
||||
*/
|
||||
public function setTimeValue($timeValue)
|
||||
{
|
||||
$this->timeValue = $timeValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Use appendToXml to insert actions into xml.
|
||||
*
|
||||
* @param \SimpleXMLElement $xmlRule
|
||||
*/
|
||||
public function appendToXml(&$xmlRule)
|
||||
{
|
||||
$xmlAction = $xmlRule->addChild($this->action);
|
||||
$xmlAction->addChild($this->timeSpec, $this->timeValue);
|
||||
}
|
||||
|
||||
private $action;
|
||||
private $timeSpec;
|
||||
private $timeValue;
|
||||
|
||||
}
|
107
vendor/oss-sdk/src/OSS/Model/LifecycleConfig.php
vendored
Executable file
107
vendor/oss-sdk/src/OSS/Model/LifecycleConfig.php
vendored
Executable file
@ -0,0 +1,107 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
use OSS\Core\OssException;
|
||||
|
||||
|
||||
/**
|
||||
* Class BucketLifecycleConfig
|
||||
* @package OSS\Model
|
||||
* @link http://help.aliyun.com/document_detail/oss/api-reference/bucket/PutBucketLifecycle.html
|
||||
*/
|
||||
class LifecycleConfig implements XmlConfig
|
||||
{
|
||||
/**
|
||||
* Parse the xml into this object.
|
||||
*
|
||||
* @param string $strXml
|
||||
* @throws OssException
|
||||
* @return null
|
||||
*/
|
||||
public function parseFromXml($strXml)
|
||||
{
|
||||
$this->rules = array();
|
||||
$xml = simplexml_load_string($strXml);
|
||||
if (!isset($xml->Rule)) return;
|
||||
$this->rules = array();
|
||||
foreach ($xml->Rule as $rule) {
|
||||
$id = strval($rule->ID);
|
||||
$prefix = strval($rule->Prefix);
|
||||
$status = strval($rule->Status);
|
||||
$actions = array();
|
||||
foreach ($rule as $key => $value) {
|
||||
if ($key === 'ID' || $key === 'Prefix' || $key === 'Status') continue;
|
||||
$action = $key;
|
||||
$timeSpec = null;
|
||||
$timeValue = null;
|
||||
foreach ($value as $timeSpecKey => $timeValueValue) {
|
||||
$timeSpec = $timeSpecKey;
|
||||
$timeValue = strval($timeValueValue);
|
||||
}
|
||||
$actions[] = new LifecycleAction($action, $timeSpec, $timeValue);
|
||||
}
|
||||
$this->rules[] = new LifecycleRule($id, $prefix, $status, $actions);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Serialize the object to xml
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function serializeToXml()
|
||||
{
|
||||
|
||||
$xml = new \SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><LifecycleConfiguration></LifecycleConfiguration>');
|
||||
foreach ($this->rules as $rule) {
|
||||
$xmlRule = $xml->addChild('Rule');
|
||||
$rule->appendToXml($xmlRule);
|
||||
}
|
||||
return $xml->asXML();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Add a LifecycleRule
|
||||
*
|
||||
* @param LifecycleRule $lifecycleRule
|
||||
* @throws OssException
|
||||
*/
|
||||
public function addRule($lifecycleRule)
|
||||
{
|
||||
if (!isset($lifecycleRule)) {
|
||||
throw new OssException("lifecycleRule is null");
|
||||
}
|
||||
$this->rules[] = $lifecycleRule;
|
||||
}
|
||||
|
||||
/**
|
||||
* Serialize the object into xml string.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString()
|
||||
{
|
||||
return $this->serializeToXml();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all lifecycle rules.
|
||||
*
|
||||
* @return LifecycleRule[]
|
||||
*/
|
||||
public function getRules()
|
||||
{
|
||||
return $this->rules;
|
||||
}
|
||||
|
||||
/**
|
||||
* @var LifecycleRule[]
|
||||
*/
|
||||
private $rules;
|
||||
}
|
||||
|
||||
|
126
vendor/oss-sdk/src/OSS/Model/LifecycleRule.php
vendored
Executable file
126
vendor/oss-sdk/src/OSS/Model/LifecycleRule.php
vendored
Executable file
@ -0,0 +1,126 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
|
||||
/**
|
||||
* Class LifecycleRule
|
||||
* @package OSS\Model
|
||||
*
|
||||
* @link http://help.aliyun.com/document_detail/oss/api-reference/bucket/PutBucketLifecycle.html
|
||||
*/
|
||||
class LifecycleRule
|
||||
{
|
||||
/**
|
||||
* Get Id
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $id Rule Id
|
||||
*/
|
||||
public function setId($id)
|
||||
{
|
||||
$this->id = $id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a file prefix
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getPrefix()
|
||||
{
|
||||
return $this->prefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a file prefix
|
||||
*
|
||||
* @param string $prefix The file prefix
|
||||
*/
|
||||
public function setPrefix($prefix)
|
||||
{
|
||||
$this->prefix = $prefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Lifecycle status
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getStatus()
|
||||
{
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Lifecycle status
|
||||
*
|
||||
* @param string $status
|
||||
*/
|
||||
public function setStatus($status)
|
||||
{
|
||||
$this->status = $status;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return LifecycleAction[]
|
||||
*/
|
||||
public function getActions()
|
||||
{
|
||||
return $this->actions;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param LifecycleAction[] $actions
|
||||
*/
|
||||
public function setActions($actions)
|
||||
{
|
||||
$this->actions = $actions;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* LifecycleRule constructor.
|
||||
*
|
||||
* @param string $id rule Id
|
||||
* @param string $prefix File prefix
|
||||
* @param string $status Rule status, which has the following valid values: [self::LIFECYCLE_STATUS_ENABLED, self::LIFECYCLE_STATUS_DISABLED]
|
||||
* @param LifecycleAction[] $actions
|
||||
*/
|
||||
public function __construct($id, $prefix, $status, $actions)
|
||||
{
|
||||
$this->id = $id;
|
||||
$this->prefix = $prefix;
|
||||
$this->status = $status;
|
||||
$this->actions = $actions;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \SimpleXMLElement $xmlRule
|
||||
*/
|
||||
public function appendToXml(&$xmlRule)
|
||||
{
|
||||
$xmlRule->addChild('ID', $this->id);
|
||||
$xmlRule->addChild('Prefix', $this->prefix);
|
||||
$xmlRule->addChild('Status', $this->status);
|
||||
foreach ($this->actions as $action) {
|
||||
$action->appendToXml($xmlRule);
|
||||
}
|
||||
}
|
||||
|
||||
private $id;
|
||||
private $prefix;
|
||||
private $status;
|
||||
private $actions = array();
|
||||
|
||||
const LIFECYCLE_STATUS_ENABLED = 'Enabled';
|
||||
const LIFECYCLE_STATUS_DISABLED = 'Disabled';
|
||||
}
|
134
vendor/oss-sdk/src/OSS/Model/ListMultipartUploadInfo.php
vendored
Executable file
134
vendor/oss-sdk/src/OSS/Model/ListMultipartUploadInfo.php
vendored
Executable file
@ -0,0 +1,134 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
/**
|
||||
* Class ListMultipartUploadInfo
|
||||
* @package OSS\Model
|
||||
*
|
||||
* @link http://help.aliyun.com/document_detail/oss/api-reference/multipart-upload/ListMultipartUploads.html
|
||||
*/
|
||||
class ListMultipartUploadInfo
|
||||
{
|
||||
/**
|
||||
* ListMultipartUploadInfo constructor.
|
||||
*
|
||||
* @param string $bucket
|
||||
* @param string $keyMarker
|
||||
* @param string $uploadIdMarker
|
||||
* @param string $nextKeyMarker
|
||||
* @param string $nextUploadIdMarker
|
||||
* @param string $delimiter
|
||||
* @param string $prefix
|
||||
* @param int $maxUploads
|
||||
* @param string $isTruncated
|
||||
* @param array $uploads
|
||||
*/
|
||||
public function __construct($bucket, $keyMarker, $uploadIdMarker, $nextKeyMarker, $nextUploadIdMarker, $delimiter, $prefix, $maxUploads, $isTruncated, array $uploads)
|
||||
{
|
||||
$this->bucket = $bucket;
|
||||
$this->keyMarker = $keyMarker;
|
||||
$this->uploadIdMarker = $uploadIdMarker;
|
||||
$this->nextKeyMarker = $nextKeyMarker;
|
||||
$this->nextUploadIdMarker = $nextUploadIdMarker;
|
||||
$this->delimiter = $delimiter;
|
||||
$this->prefix = $prefix;
|
||||
$this->maxUploads = $maxUploads;
|
||||
$this->isTruncated = $isTruncated;
|
||||
$this->uploads = $uploads;
|
||||
}
|
||||
|
||||
/**
|
||||
* 得到bucket名称
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getBucket()
|
||||
{
|
||||
return $this->bucket;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getKeyMarker()
|
||||
{
|
||||
return $this->keyMarker;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getUploadIdMarker()
|
||||
{
|
||||
return $this->uploadIdMarker;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getNextKeyMarker()
|
||||
{
|
||||
return $this->nextKeyMarker;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getNextUploadIdMarker()
|
||||
{
|
||||
return $this->nextUploadIdMarker;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getDelimiter()
|
||||
{
|
||||
return $this->delimiter;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getPrefix()
|
||||
{
|
||||
return $this->prefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getMaxUploads()
|
||||
{
|
||||
return $this->maxUploads;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getIsTruncated()
|
||||
{
|
||||
return $this->isTruncated;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return UploadInfo[]
|
||||
*/
|
||||
public function getUploads()
|
||||
{
|
||||
return $this->uploads;
|
||||
}
|
||||
|
||||
private $bucket = "";
|
||||
private $keyMarker = "";
|
||||
private $uploadIdMarker = "";
|
||||
private $nextKeyMarker = "";
|
||||
private $nextUploadIdMarker = "";
|
||||
private $delimiter = "";
|
||||
private $prefix = "";
|
||||
private $maxUploads = 0;
|
||||
private $isTruncated = "false";
|
||||
private $uploads = array();
|
||||
}
|
97
vendor/oss-sdk/src/OSS/Model/ListPartsInfo.php
vendored
Executable file
97
vendor/oss-sdk/src/OSS/Model/ListPartsInfo.php
vendored
Executable file
@ -0,0 +1,97 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
/**
|
||||
* Class ListPartsInfo
|
||||
* @package OSS\Model
|
||||
* @link http://help.aliyun.com/document_detail/oss/api-reference/multipart-upload/ListParts.html
|
||||
*/
|
||||
class ListPartsInfo
|
||||
{
|
||||
|
||||
/**
|
||||
* ListPartsInfo constructor.
|
||||
* @param string $bucket
|
||||
* @param string $key
|
||||
* @param string $uploadId
|
||||
* @param int $nextPartNumberMarker
|
||||
* @param int $maxParts
|
||||
* @param string $isTruncated
|
||||
* @param array $listPart
|
||||
*/
|
||||
public function __construct($bucket, $key, $uploadId, $nextPartNumberMarker, $maxParts, $isTruncated, array $listPart)
|
||||
{
|
||||
$this->bucket = $bucket;
|
||||
$this->key = $key;
|
||||
$this->uploadId = $uploadId;
|
||||
$this->nextPartNumberMarker = $nextPartNumberMarker;
|
||||
$this->maxParts = $maxParts;
|
||||
$this->isTruncated = $isTruncated;
|
||||
$this->listPart = $listPart;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getBucket()
|
||||
{
|
||||
return $this->bucket;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getKey()
|
||||
{
|
||||
return $this->key;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getUploadId()
|
||||
{
|
||||
return $this->uploadId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getNextPartNumberMarker()
|
||||
{
|
||||
return $this->nextPartNumberMarker;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getMaxParts()
|
||||
{
|
||||
return $this->maxParts;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getIsTruncated()
|
||||
{
|
||||
return $this->isTruncated;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getListPart()
|
||||
{
|
||||
return $this->listPart;
|
||||
}
|
||||
|
||||
private $bucket = "";
|
||||
private $key = "";
|
||||
private $uploadId = "";
|
||||
private $nextPartNumberMarker = 0;
|
||||
private $maxParts = 0;
|
||||
private $isTruncated = "";
|
||||
private $listPart = array();
|
||||
}
|
121
vendor/oss-sdk/src/OSS/Model/LiveChannelConfig.php
vendored
Executable file
121
vendor/oss-sdk/src/OSS/Model/LiveChannelConfig.php
vendored
Executable file
@ -0,0 +1,121 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
|
||||
/**
|
||||
* Class LiveChannelConfig
|
||||
* @package OSS\Model
|
||||
*/
|
||||
class LiveChannelConfig implements XmlConfig
|
||||
{
|
||||
public function __construct($option = array())
|
||||
{
|
||||
if (isset($option['description'])) {
|
||||
$this->description = $option['description'];
|
||||
}
|
||||
if (isset($option['status'])) {
|
||||
$this->status = $option['status'];
|
||||
}
|
||||
if (isset($option['type'])) {
|
||||
$this->type = $option['type'];
|
||||
}
|
||||
if (isset($option['fragDuration'])) {
|
||||
$this->fragDuration = $option['fragDuration'];
|
||||
}
|
||||
if (isset($option['fragCount'])) {
|
||||
$this->fragCount = $option['fragCount'];
|
||||
}
|
||||
if (isset($option['playListName'])) {
|
||||
$this->playListName = $option['playListName'];
|
||||
}
|
||||
}
|
||||
|
||||
public function getDescription()
|
||||
{
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
public function getStatus()
|
||||
{
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
public function getType()
|
||||
{
|
||||
return $this->type;
|
||||
}
|
||||
|
||||
public function getFragDuration()
|
||||
{
|
||||
return $this->fragDuration;
|
||||
}
|
||||
|
||||
public function getFragCount()
|
||||
{
|
||||
return $this->fragCount;
|
||||
}
|
||||
|
||||
public function getPlayListName()
|
||||
{
|
||||
return $this->playListName;
|
||||
}
|
||||
|
||||
public function parseFromXml($strXml)
|
||||
{
|
||||
$xml = simplexml_load_string($strXml);
|
||||
$this->description = strval($xml->Description);
|
||||
$this->status = strval($xml->Status);
|
||||
$target = $xml->Target;
|
||||
$this->type = strval($target->Type);
|
||||
$this->fragDuration = intval($target->FragDuration);
|
||||
$this->fragCount = intval($target->FragCount);
|
||||
$this->playListName = strval($target->PlayListName);
|
||||
}
|
||||
|
||||
public function serializeToXml()
|
||||
{
|
||||
$strXml = <<<EOF
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LiveChannelConfiguration>
|
||||
</LiveChannelConfiguration>
|
||||
EOF;
|
||||
$xml = new \SimpleXMLElement($strXml);
|
||||
if (isset($this->description)) {
|
||||
$xml->addChild('Description', $this->description);
|
||||
}
|
||||
|
||||
if (isset($this->status)) {
|
||||
$xml->addChild('Status', $this->status);
|
||||
}
|
||||
|
||||
$node = $xml->addChild('Target');
|
||||
$node->addChild('Type', $this->type);
|
||||
|
||||
if (isset($this->fragDuration)) {
|
||||
$node->addChild('FragDuration', $this->fragDuration);
|
||||
}
|
||||
|
||||
if (isset($this->fragCount)) {
|
||||
$node->addChild('FragCount', $this->fragCount);
|
||||
}
|
||||
|
||||
if (isset($this->playListName)) {
|
||||
$node->addChild('PlayListName', $this->playListName);
|
||||
}
|
||||
|
||||
return $xml->asXML();
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return $this->serializeToXml();
|
||||
}
|
||||
|
||||
private $description;
|
||||
private $status = "enabled";
|
||||
private $type;
|
||||
private $fragDuration = 5;
|
||||
private $fragCount = 3;
|
||||
private $playListName = "playlist.m3u8";
|
||||
}
|
59
vendor/oss-sdk/src/OSS/Model/LiveChannelHistory.php
vendored
Executable file
59
vendor/oss-sdk/src/OSS/Model/LiveChannelHistory.php
vendored
Executable file
@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
/**
|
||||
* Class LiveChannelHistory
|
||||
* @package OSS\Model
|
||||
*
|
||||
*/
|
||||
class LiveChannelHistory implements XmlConfig
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
}
|
||||
|
||||
public function getStartTime()
|
||||
{
|
||||
return $this->startTime;
|
||||
}
|
||||
|
||||
public function getEndTime()
|
||||
{
|
||||
return $this->endTime;
|
||||
}
|
||||
|
||||
public function getRemoteAddr()
|
||||
{
|
||||
return $this->remoteAddr;
|
||||
}
|
||||
|
||||
public function parseFromXmlNode($xml)
|
||||
{
|
||||
if (isset($xml->StartTime)) {
|
||||
$this->startTime = strval($xml->StartTime);
|
||||
}
|
||||
|
||||
if (isset($xml->EndTime)) {
|
||||
$this->endTime = strval($xml->EndTime);
|
||||
}
|
||||
|
||||
if (isset($xml->RemoteAddr)) {
|
||||
$this->remoteAddr = strval($xml->RemoteAddr);
|
||||
}
|
||||
}
|
||||
|
||||
public function parseFromXml($strXml)
|
||||
{
|
||||
$xml = simplexml_load_string($strXml);
|
||||
$this->parseFromXmlNode($xml);
|
||||
}
|
||||
|
||||
public function serializeToXml()
|
||||
{
|
||||
throw new OssException("Not implemented.");
|
||||
}
|
||||
|
||||
private $startTime;
|
||||
private $endTime;
|
||||
private $remoteAddr;
|
||||
}
|
107
vendor/oss-sdk/src/OSS/Model/LiveChannelInfo.php
vendored
Executable file
107
vendor/oss-sdk/src/OSS/Model/LiveChannelInfo.php
vendored
Executable file
@ -0,0 +1,107 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
/**
|
||||
* Class LiveChannelInfo
|
||||
* @package OSS\Model
|
||||
*
|
||||
*/
|
||||
class LiveChannelInfo implements XmlConfig
|
||||
{
|
||||
public function __construct($name = null, $description = null)
|
||||
{
|
||||
$this->name = $name;
|
||||
$this->description = $description;
|
||||
$this->publishUrls = array();
|
||||
$this->playUrls = array();
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function setName($name)
|
||||
{
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
public function getPublishUrls()
|
||||
{
|
||||
return $this->publishUrls;
|
||||
}
|
||||
|
||||
public function getPlayUrls()
|
||||
{
|
||||
return $this->playUrls;
|
||||
}
|
||||
|
||||
public function getStatus()
|
||||
{
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
public function getLastModified()
|
||||
{
|
||||
return $this->lastModified;
|
||||
}
|
||||
|
||||
public function getDescription()
|
||||
{
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
public function setDescription($description)
|
||||
{
|
||||
$this->description = $description;
|
||||
}
|
||||
|
||||
public function parseFromXmlNode($xml)
|
||||
{
|
||||
if (isset($xml->Name)) {
|
||||
$this->name = strval($xml->Name);
|
||||
}
|
||||
|
||||
if (isset($xml->Description)) {
|
||||
$this->description = strval($xml->Description);
|
||||
}
|
||||
|
||||
if (isset($xml->Status)) {
|
||||
$this->status = strval($xml->Status);
|
||||
}
|
||||
|
||||
if (isset($xml->LastModified)) {
|
||||
$this->lastModified = strval($xml->LastModified);
|
||||
}
|
||||
|
||||
if (isset($xml->PublishUrls)) {
|
||||
foreach ($xml->PublishUrls as $url) {
|
||||
$this->publishUrls[] = strval($url->Url);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($xml->PlayUrls)) {
|
||||
foreach ($xml->PlayUrls as $url) {
|
||||
$this->playUrls[] = strval($url->Url);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function parseFromXml($strXml)
|
||||
{
|
||||
$xml = simplexml_load_string($strXml);
|
||||
$this->parseFromXmlNode($xml);
|
||||
}
|
||||
|
||||
public function serializeToXml()
|
||||
{
|
||||
throw new OssException("Not implemented.");
|
||||
}
|
||||
|
||||
private $name;
|
||||
private $description;
|
||||
private $publishUrls;
|
||||
private $playUrls;
|
||||
private $status;
|
||||
private $lastModified;
|
||||
}
|
107
vendor/oss-sdk/src/OSS/Model/LiveChannelListInfo.php
vendored
Executable file
107
vendor/oss-sdk/src/OSS/Model/LiveChannelListInfo.php
vendored
Executable file
@ -0,0 +1,107 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
/**
|
||||
* Class LiveChannelListInfo
|
||||
*
|
||||
* The data returned by ListBucketLiveChannels
|
||||
*
|
||||
* @package OSS\Model
|
||||
* @link http://help.aliyun.com/document_detail/oss/api-reference/bucket/GetBucket.html
|
||||
*/
|
||||
class LiveChannelListInfo implements XmlConfig
|
||||
{
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getBucketName()
|
||||
{
|
||||
return $this->bucket;
|
||||
}
|
||||
|
||||
public function setBucketName($name)
|
||||
{
|
||||
$this->bucket = $name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getPrefix()
|
||||
{
|
||||
return $this->prefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getMarker()
|
||||
{
|
||||
return $this->marker;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getMaxKeys()
|
||||
{
|
||||
return $this->maxKeys;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getIsTruncated()
|
||||
{
|
||||
return $this->isTruncated;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return LiveChannelInfo[]
|
||||
*/
|
||||
public function getChannelList()
|
||||
{
|
||||
return $this->channelList;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getNextMarker()
|
||||
{
|
||||
return $this->nextMarker;
|
||||
}
|
||||
|
||||
public function parseFromXml($strXml)
|
||||
{
|
||||
$xml = simplexml_load_string($strXml);
|
||||
|
||||
$this->prefix = strval($xml->Prefix);
|
||||
$this->marker = strval($xml->Marker);
|
||||
$this->maxKeys = intval($xml->MaxKeys);
|
||||
$this->isTruncated = (strval($xml->IsTruncated) == 'true');
|
||||
$this->nextMarker = strval($xml->NextMarker);
|
||||
|
||||
if (isset($xml->LiveChannel)) {
|
||||
foreach ($xml->LiveChannel as $chan) {
|
||||
$channel = new LiveChannelInfo();
|
||||
$channel->parseFromXmlNode($chan);
|
||||
$this->channelList[] = $channel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function serializeToXml()
|
||||
{
|
||||
throw new OssException("Not implemented.");
|
||||
}
|
||||
|
||||
private $bucket = '';
|
||||
private $prefix = '';
|
||||
private $marker = '';
|
||||
private $nextMarker = '';
|
||||
private $maxKeys = 100;
|
||||
private $isTruncated = 'false';
|
||||
private $channelList = array();
|
||||
}
|
86
vendor/oss-sdk/src/OSS/Model/LoggingConfig.php
vendored
Executable file
86
vendor/oss-sdk/src/OSS/Model/LoggingConfig.php
vendored
Executable file
@ -0,0 +1,86 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
|
||||
/**
|
||||
* Class LoggingConfig
|
||||
* @package OSS\Model
|
||||
* @link http://help.aliyun.com/document_detail/oss/api-reference/bucket/PutBucketLogging.html
|
||||
*/
|
||||
class LoggingConfig implements XmlConfig
|
||||
{
|
||||
/**
|
||||
* LoggingConfig constructor.
|
||||
* @param null $targetBucket
|
||||
* @param null $targetPrefix
|
||||
*/
|
||||
public function __construct($targetBucket = null, $targetPrefix = null)
|
||||
{
|
||||
$this->targetBucket = $targetBucket;
|
||||
$this->targetPrefix = $targetPrefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $strXml
|
||||
* @return null
|
||||
*/
|
||||
public function parseFromXml($strXml)
|
||||
{
|
||||
$xml = simplexml_load_string($strXml);
|
||||
if (!isset($xml->LoggingEnabled)) return;
|
||||
foreach ($xml->LoggingEnabled as $status) {
|
||||
foreach ($status as $key => $value) {
|
||||
if ($key === 'TargetBucket') {
|
||||
$this->targetBucket = strval($value);
|
||||
} elseif ($key === 'TargetPrefix') {
|
||||
$this->targetPrefix = strval($value);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Serialize to xml string
|
||||
*
|
||||
*/
|
||||
public function serializeToXml()
|
||||
{
|
||||
$xml = new \SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><BucketLoggingStatus></BucketLoggingStatus>');
|
||||
if (isset($this->targetBucket) && isset($this->targetPrefix)) {
|
||||
$loggingEnabled = $xml->addChild('LoggingEnabled');
|
||||
$loggingEnabled->addChild('TargetBucket', $this->targetBucket);
|
||||
$loggingEnabled->addChild('TargetPrefix', $this->targetPrefix);
|
||||
}
|
||||
return $xml->asXML();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function __toString()
|
||||
{
|
||||
return $this->serializeToXml();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getTargetBucket()
|
||||
{
|
||||
return $this->targetBucket;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getTargetPrefix()
|
||||
{
|
||||
return $this->targetPrefix;
|
||||
}
|
||||
|
||||
private $targetBucket = "";
|
||||
private $targetPrefix = "";
|
||||
|
||||
}
|
93
vendor/oss-sdk/src/OSS/Model/ObjectInfo.php
vendored
Executable file
93
vendor/oss-sdk/src/OSS/Model/ObjectInfo.php
vendored
Executable file
@ -0,0 +1,93 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
/**
|
||||
*
|
||||
* Class ObjectInfo
|
||||
*
|
||||
* The element type of ObjectListInfo, which is the return value type of listObjects
|
||||
*
|
||||
* The return value of listObjects includes two arrays
|
||||
* One is the returned ObjectListInfo, which is similar to a file list in a file system.
|
||||
* The other is the returned prefix list, which is similar to a folder list in a file system.
|
||||
*
|
||||
* @package OSS\Model
|
||||
*/
|
||||
class ObjectInfo
|
||||
{
|
||||
/**
|
||||
* ObjectInfo constructor.
|
||||
*
|
||||
* @param string $key
|
||||
* @param string $lastModified
|
||||
* @param string $eTag
|
||||
* @param string $type
|
||||
* @param int $size
|
||||
* @param string $storageClass
|
||||
*/
|
||||
public function __construct($key, $lastModified, $eTag, $type, $size, $storageClass)
|
||||
{
|
||||
$this->key = $key;
|
||||
$this->lastModified = $lastModified;
|
||||
$this->eTag = $eTag;
|
||||
$this->type = $type;
|
||||
$this->size = $size;
|
||||
$this->storageClass = $storageClass;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getKey()
|
||||
{
|
||||
return $this->key;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getLastModified()
|
||||
{
|
||||
return $this->lastModified;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getETag()
|
||||
{
|
||||
return $this->eTag;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getType()
|
||||
{
|
||||
return $this->type;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getSize()
|
||||
{
|
||||
return $this->size;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getStorageClass()
|
||||
{
|
||||
return $this->storageClass;
|
||||
}
|
||||
|
||||
private $key = "";
|
||||
private $lastModified = "";
|
||||
private $eTag = "";
|
||||
private $type = "";
|
||||
private $size = 0;
|
||||
private $storageClass = "";
|
||||
}
|
126
vendor/oss-sdk/src/OSS/Model/ObjectListInfo.php
vendored
Executable file
126
vendor/oss-sdk/src/OSS/Model/ObjectListInfo.php
vendored
Executable file
@ -0,0 +1,126 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
/**
|
||||
* Class ObjectListInfo
|
||||
*
|
||||
* The class of return value of ListObjects
|
||||
*
|
||||
* @package OSS\Model
|
||||
* @link http://help.aliyun.com/document_detail/oss/api-reference/bucket/GetBucket.html
|
||||
*/
|
||||
class ObjectListInfo
|
||||
{
|
||||
/**
|
||||
* ObjectListInfo constructor.
|
||||
*
|
||||
* @param string $bucketName
|
||||
* @param string $prefix
|
||||
* @param string $marker
|
||||
* @param string $nextMarker
|
||||
* @param string $maxKeys
|
||||
* @param string $delimiter
|
||||
* @param null $isTruncated
|
||||
* @param array $objectList
|
||||
* @param array $prefixList
|
||||
*/
|
||||
public function __construct($bucketName, $prefix, $marker, $nextMarker, $maxKeys, $delimiter, $isTruncated, array $objectList, array $prefixList)
|
||||
{
|
||||
$this->bucketName = $bucketName;
|
||||
$this->prefix = $prefix;
|
||||
$this->marker = $marker;
|
||||
$this->nextMarker = $nextMarker;
|
||||
$this->maxKeys = $maxKeys;
|
||||
$this->delimiter = $delimiter;
|
||||
$this->isTruncated = $isTruncated;
|
||||
$this->objectList = $objectList;
|
||||
$this->prefixList = $prefixList;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getBucketName()
|
||||
{
|
||||
return $this->bucketName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getPrefix()
|
||||
{
|
||||
return $this->prefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getMarker()
|
||||
{
|
||||
return $this->marker;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getMaxKeys()
|
||||
{
|
||||
return $this->maxKeys;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getDelimiter()
|
||||
{
|
||||
return $this->delimiter;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getIsTruncated()
|
||||
{
|
||||
return $this->isTruncated;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the ObjectInfo list.
|
||||
*
|
||||
* @return ObjectInfo[]
|
||||
*/
|
||||
public function getObjectList()
|
||||
{
|
||||
return $this->objectList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the PrefixInfo list
|
||||
*
|
||||
* @return PrefixInfo[]
|
||||
*/
|
||||
public function getPrefixList()
|
||||
{
|
||||
return $this->prefixList;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getNextMarker()
|
||||
{
|
||||
return $this->nextMarker;
|
||||
}
|
||||
|
||||
private $bucketName = "";
|
||||
private $prefix = "";
|
||||
private $marker = "";
|
||||
private $nextMarker = "";
|
||||
private $maxKeys = 0;
|
||||
private $delimiter = "";
|
||||
private $isTruncated = null;
|
||||
private $objectList = array();
|
||||
private $prefixList = array();
|
||||
}
|
63
vendor/oss-sdk/src/OSS/Model/PartInfo.php
vendored
Executable file
63
vendor/oss-sdk/src/OSS/Model/PartInfo.php
vendored
Executable file
@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
/**
|
||||
* Class PartInfo
|
||||
* @package OSS\Model
|
||||
*/
|
||||
class PartInfo
|
||||
{
|
||||
/**
|
||||
* PartInfo constructor.
|
||||
*
|
||||
* @param int $partNumber
|
||||
* @param string $lastModified
|
||||
* @param string $eTag
|
||||
* @param int $size
|
||||
*/
|
||||
public function __construct($partNumber, $lastModified, $eTag, $size)
|
||||
{
|
||||
$this->partNumber = $partNumber;
|
||||
$this->lastModified = $lastModified;
|
||||
$this->eTag = $eTag;
|
||||
$this->size = $size;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getPartNumber()
|
||||
{
|
||||
return $this->partNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getLastModified()
|
||||
{
|
||||
return $this->lastModified;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getETag()
|
||||
{
|
||||
return $this->eTag;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getSize()
|
||||
{
|
||||
return $this->size;
|
||||
}
|
||||
|
||||
private $partNumber = 0;
|
||||
private $lastModified = "";
|
||||
private $eTag = "";
|
||||
private $size = 0;
|
||||
}
|
36
vendor/oss-sdk/src/OSS/Model/PrefixInfo.php
vendored
Executable file
36
vendor/oss-sdk/src/OSS/Model/PrefixInfo.php
vendored
Executable file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
/**
|
||||
* Class PrefixInfo
|
||||
*
|
||||
* ListObjects return Prefix list of classes
|
||||
* The returned data contains two arrays
|
||||
* One is to get the list of objects【Can be understood as the corresponding file system file list】
|
||||
* One is to get Prefix list【Can be understood as the corresponding file system directory list】
|
||||
*
|
||||
* @package OSS\Model
|
||||
* @link http://help.aliyun.com/document_detail/oss/api-reference/bucket/GetBucket.html
|
||||
*/
|
||||
class PrefixInfo
|
||||
{
|
||||
/**
|
||||
* PrefixInfo constructor.
|
||||
* @param string $prefix
|
||||
*/
|
||||
public function __construct($prefix)
|
||||
{
|
||||
$this->prefix = $prefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getPrefix()
|
||||
{
|
||||
return $this->prefix;
|
||||
}
|
||||
|
||||
private $prefix;
|
||||
}
|
93
vendor/oss-sdk/src/OSS/Model/RefererConfig.php
vendored
Executable file
93
vendor/oss-sdk/src/OSS/Model/RefererConfig.php
vendored
Executable file
@ -0,0 +1,93 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
/**
|
||||
* Class RefererConfig
|
||||
*
|
||||
* @package OSS\Model
|
||||
* @link http://help.aliyun.com/document_detail/oss/api-reference/bucket/PutBucketReferer.html
|
||||
*/
|
||||
class RefererConfig implements XmlConfig
|
||||
{
|
||||
/**
|
||||
* @param string $strXml
|
||||
* @return null
|
||||
*/
|
||||
public function parseFromXml($strXml)
|
||||
{
|
||||
$xml = simplexml_load_string($strXml);
|
||||
if (!isset($xml->AllowEmptyReferer)) return;
|
||||
if (!isset($xml->RefererList)) return;
|
||||
$this->allowEmptyReferer =
|
||||
(strval($xml->AllowEmptyReferer) === 'TRUE' || strval($xml->AllowEmptyReferer) === 'true') ? true : false;
|
||||
|
||||
foreach ($xml->RefererList->Referer as $key => $refer) {
|
||||
$this->refererList[] = strval($refer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* serialize the RefererConfig object into xml string
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function serializeToXml()
|
||||
{
|
||||
$xml = new \SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><RefererConfiguration></RefererConfiguration>');
|
||||
if ($this->allowEmptyReferer) {
|
||||
$xml->addChild('AllowEmptyReferer', 'true');
|
||||
} else {
|
||||
$xml->addChild('AllowEmptyReferer', 'false');
|
||||
}
|
||||
$refererList = $xml->addChild('RefererList');
|
||||
foreach ($this->refererList as $referer) {
|
||||
$refererList->addChild('Referer', $referer);
|
||||
}
|
||||
return $xml->asXML();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
function __toString()
|
||||
{
|
||||
return $this->serializeToXml();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param boolean $allowEmptyReferer
|
||||
*/
|
||||
public function setAllowEmptyReferer($allowEmptyReferer)
|
||||
{
|
||||
$this->allowEmptyReferer = $allowEmptyReferer;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $referer
|
||||
*/
|
||||
public function addReferer($referer)
|
||||
{
|
||||
$this->refererList[] = $referer;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean
|
||||
*/
|
||||
public function isAllowEmptyReferer()
|
||||
{
|
||||
return $this->allowEmptyReferer;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getRefererList()
|
||||
{
|
||||
return $this->refererList;
|
||||
}
|
||||
|
||||
private $allowEmptyReferer = true;
|
||||
private $refererList = array();
|
||||
}
|
74
vendor/oss-sdk/src/OSS/Model/StorageCapacityConfig.php
vendored
Executable file
74
vendor/oss-sdk/src/OSS/Model/StorageCapacityConfig.php
vendored
Executable file
@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
/**
|
||||
* Class StorageCapacityConfig
|
||||
*
|
||||
* @package OSS\Model
|
||||
* @link http://docs.alibaba-inc.com/pages/viewpage.action?pageId=271614763
|
||||
*/
|
||||
class StorageCapacityConfig implements XmlConfig
|
||||
{
|
||||
/**
|
||||
* StorageCapacityConfig constructor.
|
||||
*
|
||||
* @param int $storageCapacity
|
||||
*/
|
||||
public function __construct($storageCapacity)
|
||||
{
|
||||
$this->storageCapacity = $storageCapacity;
|
||||
}
|
||||
|
||||
/**
|
||||
* Not implemented
|
||||
*/
|
||||
public function parseFromXml($strXml)
|
||||
{
|
||||
throw new OssException("Not implemented.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Serialize StorageCapacityConfig into xml
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function serializeToXml()
|
||||
{
|
||||
$xml = new \SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><BucketUserQos></BucketUserQos>');
|
||||
$xml->addChild('StorageCapacity', strval($this->storageCapacity));
|
||||
return $xml->asXML();
|
||||
}
|
||||
|
||||
/**
|
||||
* To string
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function __toString()
|
||||
{
|
||||
return $this->serializeToXml();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set storage capacity
|
||||
*
|
||||
* @param int $storageCapacity
|
||||
*/
|
||||
public function setStorageCapacity($storageCapacity)
|
||||
{
|
||||
$this->storageCapacity = $storageCapacity;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get storage capacity
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getStorageCapacity()
|
||||
{
|
||||
return $this->storageCapacity;
|
||||
}
|
||||
|
||||
private $storageCapacity = 0;
|
||||
}
|
55
vendor/oss-sdk/src/OSS/Model/UploadInfo.php
vendored
Executable file
55
vendor/oss-sdk/src/OSS/Model/UploadInfo.php
vendored
Executable file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
/**
|
||||
* Class UploadInfo
|
||||
*
|
||||
* The return value of ListMultipartUpload
|
||||
*
|
||||
* @package OSS\Model
|
||||
*/
|
||||
class UploadInfo
|
||||
{
|
||||
/**
|
||||
* UploadInfo constructor.
|
||||
*
|
||||
* @param string $key
|
||||
* @param string $uploadId
|
||||
* @param string $initiated
|
||||
*/
|
||||
public function __construct($key, $uploadId, $initiated)
|
||||
{
|
||||
$this->key = $key;
|
||||
$this->uploadId = $uploadId;
|
||||
$this->initiated = $initiated;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getKey()
|
||||
{
|
||||
return $this->key;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getUploadId()
|
||||
{
|
||||
return $this->uploadId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getInitiated()
|
||||
{
|
||||
return $this->initiated;
|
||||
}
|
||||
|
||||
private $key = "";
|
||||
private $uploadId = "";
|
||||
private $initiated = "";
|
||||
}
|
76
vendor/oss-sdk/src/OSS/Model/WebsiteConfig.php
vendored
Executable file
76
vendor/oss-sdk/src/OSS/Model/WebsiteConfig.php
vendored
Executable file
@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
|
||||
use OSS\Core\OssException;
|
||||
|
||||
|
||||
/**
|
||||
* Class WebsiteConfig
|
||||
* @package OSS\Model
|
||||
* @link http://help.aliyun.com/document_detail/oss/api-reference/bucket/PutBucketWebsite.html
|
||||
*/
|
||||
class WebsiteConfig implements XmlConfig
|
||||
{
|
||||
/**
|
||||
* WebsiteConfig constructor.
|
||||
* @param string $indexDocument
|
||||
* @param string $errorDocument
|
||||
*/
|
||||
public function __construct($indexDocument = "", $errorDocument = "")
|
||||
{
|
||||
$this->indexDocument = $indexDocument;
|
||||
$this->errorDocument = $errorDocument;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $strXml
|
||||
* @return null
|
||||
*/
|
||||
public function parseFromXml($strXml)
|
||||
{
|
||||
$xml = simplexml_load_string($strXml);
|
||||
if (isset($xml->IndexDocument) && isset($xml->IndexDocument->Suffix)) {
|
||||
$this->indexDocument = strval($xml->IndexDocument->Suffix);
|
||||
}
|
||||
if (isset($xml->ErrorDocument) && isset($xml->ErrorDocument->Key)) {
|
||||
$this->errorDocument = strval($xml->ErrorDocument->Key);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Serialize the WebsiteConfig object into xml string.
|
||||
*
|
||||
* @return string
|
||||
* @throws OssException
|
||||
*/
|
||||
public function serializeToXml()
|
||||
{
|
||||
$xml = new \SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><WebsiteConfiguration></WebsiteConfiguration>');
|
||||
$index_document_part = $xml->addChild('IndexDocument');
|
||||
$error_document_part = $xml->addChild('ErrorDocument');
|
||||
$index_document_part->addChild('Suffix', $this->indexDocument);
|
||||
$error_document_part->addChild('Key', $this->errorDocument);
|
||||
return $xml->asXML();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getIndexDocument()
|
||||
{
|
||||
return $this->indexDocument;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getErrorDocument()
|
||||
{
|
||||
return $this->errorDocument;
|
||||
}
|
||||
|
||||
private $indexDocument = "";
|
||||
private $errorDocument = "";
|
||||
}
|
27
vendor/oss-sdk/src/OSS/Model/XmlConfig.php
vendored
Executable file
27
vendor/oss-sdk/src/OSS/Model/XmlConfig.php
vendored
Executable file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Model;
|
||||
|
||||
/**
|
||||
* Interface XmlConfig
|
||||
* @package OSS\Model
|
||||
*/
|
||||
interface XmlConfig
|
||||
{
|
||||
|
||||
/**
|
||||
* Interface method: Parse the object from the xml.
|
||||
*
|
||||
* @param string $strXml
|
||||
* @return null
|
||||
*/
|
||||
public function parseFromXml($strXml);
|
||||
|
||||
/**
|
||||
* Interface method: Serialize the object into xml.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function serializeToXml();
|
||||
|
||||
}
|
2738
vendor/oss-sdk/src/OSS/OssClient.php
vendored
Executable file
2738
vendor/oss-sdk/src/OSS/OssClient.php
vendored
Executable file
File diff suppressed because it is too large
Load Diff
31
vendor/oss-sdk/src/OSS/Result/AclResult.php
vendored
Executable file
31
vendor/oss-sdk/src/OSS/Result/AclResult.php
vendored
Executable file
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Core\OssException;
|
||||
|
||||
/**
|
||||
* The type of the return value of getBucketAcl, it wraps the data parsed from xml.
|
||||
*
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class AclResult extends Result
|
||||
{
|
||||
/**
|
||||
* @return string
|
||||
* @throws OssException
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
if (empty($content)) {
|
||||
throw new OssException("body is null");
|
||||
}
|
||||
$xml = simplexml_load_string($content);
|
||||
if (isset($xml->AccessControlList->Grant)) {
|
||||
return strval($xml->AccessControlList->Grant);
|
||||
} else {
|
||||
throw new OssException("xml format exception");
|
||||
}
|
||||
}
|
||||
}
|
27
vendor/oss-sdk/src/OSS/Result/AppendResult.php
vendored
Executable file
27
vendor/oss-sdk/src/OSS/Result/AppendResult.php
vendored
Executable file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Core\OssException;
|
||||
|
||||
/**
|
||||
* Class AppendResult
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class AppendResult extends Result
|
||||
{
|
||||
/**
|
||||
* Get the value of next-append-position from append's response headers
|
||||
*
|
||||
* @return int
|
||||
* @throws OssException
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$header = $this->rawResponse->header;
|
||||
if (isset($header["x-oss-next-append-position"])) {
|
||||
return intval($header["x-oss-next-append-position"]);
|
||||
}
|
||||
throw new OssException("cannot get next-append-position");
|
||||
}
|
||||
}
|
19
vendor/oss-sdk/src/OSS/Result/BodyResult.php
vendored
Executable file
19
vendor/oss-sdk/src/OSS/Result/BodyResult.php
vendored
Executable file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
|
||||
/**
|
||||
* Class BodyResult
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class BodyResult extends Result
|
||||
{
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
return empty($this->rawResponse->body) ? "" : $this->rawResponse->body;
|
||||
}
|
||||
}
|
21
vendor/oss-sdk/src/OSS/Result/CallbackResult.php
vendored
Executable file
21
vendor/oss-sdk/src/OSS/Result/CallbackResult.php
vendored
Executable file
@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
|
||||
/**
|
||||
* Class CallbackResult
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class CallbackResult extends PutSetDeleteResult
|
||||
{
|
||||
protected function isResponseOk()
|
||||
{
|
||||
$status = $this->rawResponse->status;
|
||||
if ((int)(intval($status) / 100) == 2 && (int)(intval($status)) !== 203) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
30
vendor/oss-sdk/src/OSS/Result/CopyObjectResult.php
vendored
Executable file
30
vendor/oss-sdk/src/OSS/Result/CopyObjectResult.php
vendored
Executable file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
|
||||
/**
|
||||
* Class CopyObjectResult
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class CopyObjectResult extends Result
|
||||
{
|
||||
/**
|
||||
* @return array()
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$body = $this->rawResponse->body;
|
||||
$xml = simplexml_load_string($body);
|
||||
$result = array();
|
||||
|
||||
if (isset($xml->LastModified)) {
|
||||
$result[] = $xml->LastModified;
|
||||
}
|
||||
if (isset($xml->ETag)) {
|
||||
$result[] = $xml->ETag;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
27
vendor/oss-sdk/src/OSS/Result/DeleteObjectsResult.php
vendored
Executable file
27
vendor/oss-sdk/src/OSS/Result/DeleteObjectsResult.php
vendored
Executable file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
|
||||
/**
|
||||
* Class DeleteObjectsResult
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class DeleteObjectsResult extends Result
|
||||
{
|
||||
/**
|
||||
* @return array()
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$body = $this->rawResponse->body;
|
||||
$xml = simplexml_load_string($body);
|
||||
$objects = array();
|
||||
|
||||
if (isset($xml->Deleted)) {
|
||||
foreach($xml->Deleted as $deleteKey)
|
||||
$objects[] = $deleteKey->Key;
|
||||
}
|
||||
return $objects;
|
||||
}
|
||||
}
|
34
vendor/oss-sdk/src/OSS/Result/ExistResult.php
vendored
Executable file
34
vendor/oss-sdk/src/OSS/Result/ExistResult.php
vendored
Executable file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
/**
|
||||
* Class ExistResult checks if bucket or object exists, according to the http status in response headers.
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class ExistResult extends Result
|
||||
{
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
return intval($this->rawResponse->status) === 200 ? true : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the response status is OK according to the http status code.
|
||||
* [200-299]: OK; [404]: Not found. It means the object or bucket is not found--it's a valid response too.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function isResponseOk()
|
||||
{
|
||||
$status = $this->rawResponse->status;
|
||||
if ((int)(intval($status) / 100) == 2 || (int)(intval($status)) === 404) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
19
vendor/oss-sdk/src/OSS/Result/GetCnameResult.php
vendored
Executable file
19
vendor/oss-sdk/src/OSS/Result/GetCnameResult.php
vendored
Executable file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Model\CnameConfig;
|
||||
|
||||
class GetCnameResult extends Result
|
||||
{
|
||||
/**
|
||||
* @return CnameConfig
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
$config = new CnameConfig();
|
||||
$config->parseFromXml($content);
|
||||
return $config;
|
||||
}
|
||||
}
|
34
vendor/oss-sdk/src/OSS/Result/GetCorsResult.php
vendored
Executable file
34
vendor/oss-sdk/src/OSS/Result/GetCorsResult.php
vendored
Executable file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Model\CorsConfig;
|
||||
|
||||
class GetCorsResult extends Result
|
||||
{
|
||||
/**
|
||||
* @return CorsConfig
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
$config = new CorsConfig();
|
||||
$config->parseFromXml($content);
|
||||
return $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the response is OK, according to the http status. [200-299]:OK, the Cors config could be got; [404]: not found--no Cors config.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function isResponseOk()
|
||||
{
|
||||
$status = $this->rawResponse->status;
|
||||
if ((int)(intval($status) / 100) == 2 || (int)(intval($status)) === 404) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
41
vendor/oss-sdk/src/OSS/Result/GetLifecycleResult.php
vendored
Executable file
41
vendor/oss-sdk/src/OSS/Result/GetLifecycleResult.php
vendored
Executable file
@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
|
||||
use OSS\Model\LifecycleConfig;
|
||||
|
||||
/**
|
||||
* Class GetLifecycleResult
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class GetLifecycleResult extends Result
|
||||
{
|
||||
/**
|
||||
* Parse the LifecycleConfig object from the response
|
||||
*
|
||||
* @return LifecycleConfig
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
$config = new LifecycleConfig();
|
||||
$config->parseFromXml($content);
|
||||
return $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the response is OK according to the http status.
|
||||
* [200-299]: OK, and the LifecycleConfig could be got; [404] The Life cycle config is not found.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function isResponseOk()
|
||||
{
|
||||
$status = $this->rawResponse->status;
|
||||
if ((int)(intval($status) / 100) == 2 || (int)(intval($status)) === 404) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
19
vendor/oss-sdk/src/OSS/Result/GetLiveChannelHistoryResult.php
vendored
Executable file
19
vendor/oss-sdk/src/OSS/Result/GetLiveChannelHistoryResult.php
vendored
Executable file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Model\GetLiveChannelHistory;
|
||||
|
||||
class GetLiveChannelHistoryResult extends Result
|
||||
{
|
||||
/**
|
||||
* @return
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
$channelList = new GetLiveChannelHistory();
|
||||
$channelList->parseFromXml($content);
|
||||
return $channelList;
|
||||
}
|
||||
}
|
19
vendor/oss-sdk/src/OSS/Result/GetLiveChannelInfoResult.php
vendored
Executable file
19
vendor/oss-sdk/src/OSS/Result/GetLiveChannelInfoResult.php
vendored
Executable file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Model\GetLiveChannelInfo;
|
||||
|
||||
class GetLiveChannelInfoResult extends Result
|
||||
{
|
||||
/**
|
||||
* @return
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
$channelList = new GetLiveChannelInfo();
|
||||
$channelList->parseFromXml($content);
|
||||
return $channelList;
|
||||
}
|
||||
}
|
19
vendor/oss-sdk/src/OSS/Result/GetLiveChannelStatusResult.php
vendored
Executable file
19
vendor/oss-sdk/src/OSS/Result/GetLiveChannelStatusResult.php
vendored
Executable file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Model\GetLiveChannelStatus;
|
||||
|
||||
class GetLiveChannelStatusResult extends Result
|
||||
{
|
||||
/**
|
||||
* @return
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
$channelList = new GetLiveChannelStatus();
|
||||
$channelList->parseFromXml($content);
|
||||
return $channelList;
|
||||
}
|
||||
}
|
30
vendor/oss-sdk/src/OSS/Result/GetLocationResult.php
vendored
Executable file
30
vendor/oss-sdk/src/OSS/Result/GetLocationResult.php
vendored
Executable file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Core\OssException;
|
||||
|
||||
/**
|
||||
* Class GetLocationResult getBucketLocation interface returns the result class, encapsulated
|
||||
* The returned xml data is parsed
|
||||
*
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class GetLocationResult extends Result
|
||||
{
|
||||
|
||||
/**
|
||||
* Parse data from response
|
||||
*
|
||||
* @return string
|
||||
* @throws OssException
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
if (empty($content)) {
|
||||
throw new OssException("body is null");
|
||||
}
|
||||
$xml = simplexml_load_string($content);
|
||||
return $xml;
|
||||
}
|
||||
}
|
41
vendor/oss-sdk/src/OSS/Result/GetLoggingResult.php
vendored
Executable file
41
vendor/oss-sdk/src/OSS/Result/GetLoggingResult.php
vendored
Executable file
@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Model\LoggingConfig;
|
||||
|
||||
|
||||
/**
|
||||
* Class GetLoggingResult
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class GetLoggingResult extends Result
|
||||
{
|
||||
/**
|
||||
* Parse LoggingConfig data
|
||||
*
|
||||
* @return LoggingConfig
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
$config = new LoggingConfig();
|
||||
$config->parseFromXml($content);
|
||||
return $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Judged according to the return HTTP status code, [200-299] that is OK, get the bucket configuration interface,
|
||||
* 404 is also considered a valid response
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function isResponseOk()
|
||||
{
|
||||
$status = $this->rawResponse->status;
|
||||
if ((int)(intval($status) / 100) == 2 || (int)(intval($status)) === 404) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
41
vendor/oss-sdk/src/OSS/Result/GetRefererResult.php
vendored
Executable file
41
vendor/oss-sdk/src/OSS/Result/GetRefererResult.php
vendored
Executable file
@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
|
||||
use OSS\Model\RefererConfig;
|
||||
|
||||
/**
|
||||
* Class GetRefererResult
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class GetRefererResult extends Result
|
||||
{
|
||||
/**
|
||||
* Parse RefererConfig data
|
||||
*
|
||||
* @return RefererConfig
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
$config = new RefererConfig();
|
||||
$config->parseFromXml($content);
|
||||
return $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Judged according to the return HTTP status code, [200-299] that is OK, get the bucket configuration interface,
|
||||
* 404 is also considered a valid response
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function isResponseOk()
|
||||
{
|
||||
$status = $this->rawResponse->status;
|
||||
if ((int)(intval($status) / 100) == 2 || (int)(intval($status)) === 404) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
34
vendor/oss-sdk/src/OSS/Result/GetStorageCapacityResult.php
vendored
Executable file
34
vendor/oss-sdk/src/OSS/Result/GetStorageCapacityResult.php
vendored
Executable file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Core\OssException;
|
||||
|
||||
/**
|
||||
* Class AclResult GetBucketAcl interface returns the result class, encapsulated
|
||||
* The returned xml data is parsed
|
||||
*
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class GetStorageCapacityResult extends Result
|
||||
{
|
||||
/**
|
||||
* Parse data from response
|
||||
*
|
||||
* @return string
|
||||
* @throws OssException
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
if (empty($content)) {
|
||||
throw new OssException("body is null");
|
||||
}
|
||||
$xml = simplexml_load_string($content);
|
||||
if (isset($xml->StorageCapacity)) {
|
||||
return intval($xml->StorageCapacity);
|
||||
} else {
|
||||
throw new OssException("xml format exception");
|
||||
}
|
||||
}
|
||||
}
|
40
vendor/oss-sdk/src/OSS/Result/GetWebsiteResult.php
vendored
Executable file
40
vendor/oss-sdk/src/OSS/Result/GetWebsiteResult.php
vendored
Executable file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Model\WebsiteConfig;
|
||||
|
||||
/**
|
||||
* Class GetWebsiteResult
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class GetWebsiteResult extends Result
|
||||
{
|
||||
/**
|
||||
* Parse WebsiteConfig data
|
||||
*
|
||||
* @return WebsiteConfig
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
$config = new WebsiteConfig();
|
||||
$config->parseFromXml($content);
|
||||
return $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Judged according to the return HTTP status code, [200-299] that is OK, get the bucket configuration interface,
|
||||
* 404 is also considered a valid response
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function isResponseOk()
|
||||
{
|
||||
$status = $this->rawResponse->status;
|
||||
if ((int)(intval($status) / 100) == 2 || (int)(intval($status)) === 404) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
23
vendor/oss-sdk/src/OSS/Result/HeaderResult.php
vendored
Executable file
23
vendor/oss-sdk/src/OSS/Result/HeaderResult.php
vendored
Executable file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
|
||||
/**
|
||||
* Class HeaderResult
|
||||
* @package OSS\Result
|
||||
* @link https://docs.aliyun.com/?spm=5176.383663.13.7.HgUIqL#/pub/oss/api-reference/object&GetObjectMeta
|
||||
*/
|
||||
class HeaderResult extends Result
|
||||
{
|
||||
/**
|
||||
* The returned ResponseCore header is used as the return data
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
return empty($this->rawResponse->header) ? array() : $this->rawResponse->header;
|
||||
}
|
||||
|
||||
}
|
29
vendor/oss-sdk/src/OSS/Result/InitiateMultipartUploadResult.php
vendored
Executable file
29
vendor/oss-sdk/src/OSS/Result/InitiateMultipartUploadResult.php
vendored
Executable file
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Core\OssException;
|
||||
|
||||
|
||||
/**
|
||||
* Class initiateMultipartUploadResult
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class InitiateMultipartUploadResult extends Result
|
||||
{
|
||||
/**
|
||||
* Get uploadId in result and return
|
||||
*
|
||||
* @throws OssException
|
||||
* @return string
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
$xml = simplexml_load_string($content);
|
||||
if (isset($xml->UploadId)) {
|
||||
return strval($xml->UploadId);
|
||||
}
|
||||
throw new OssException("cannot get UploadId");
|
||||
}
|
||||
}
|
33
vendor/oss-sdk/src/OSS/Result/ListBucketsResult.php
vendored
Executable file
33
vendor/oss-sdk/src/OSS/Result/ListBucketsResult.php
vendored
Executable file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Model\BucketInfo;
|
||||
use OSS\Model\BucketListInfo;
|
||||
|
||||
/**
|
||||
* Class ListBucketsResult
|
||||
*
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class ListBucketsResult extends Result
|
||||
{
|
||||
/**
|
||||
* @return BucketListInfo
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$bucketList = array();
|
||||
$content = $this->rawResponse->body;
|
||||
$xml = new \SimpleXMLElement($content);
|
||||
if (isset($xml->Buckets) && isset($xml->Buckets->Bucket)) {
|
||||
foreach ($xml->Buckets->Bucket as $bucket) {
|
||||
$bucketInfo = new BucketInfo(strval($bucket->Location),
|
||||
strval($bucket->Name),
|
||||
strval($bucket->CreationDate));
|
||||
$bucketList[] = $bucketInfo;
|
||||
}
|
||||
}
|
||||
return new BucketListInfo($bucketList);
|
||||
}
|
||||
}
|
16
vendor/oss-sdk/src/OSS/Result/ListLiveChannelResult.php
vendored
Executable file
16
vendor/oss-sdk/src/OSS/Result/ListLiveChannelResult.php
vendored
Executable file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Model\LiveChannelListInfo;
|
||||
|
||||
class ListLiveChannelResult extends Result
|
||||
{
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
$channelList = new LiveChannelListInfo();
|
||||
$channelList->parseFromXml($content);
|
||||
return $channelList;
|
||||
}
|
||||
}
|
55
vendor/oss-sdk/src/OSS/Result/ListMultipartUploadResult.php
vendored
Executable file
55
vendor/oss-sdk/src/OSS/Result/ListMultipartUploadResult.php
vendored
Executable file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Core\OssUtil;
|
||||
use OSS\Model\ListMultipartUploadInfo;
|
||||
use OSS\Model\UploadInfo;
|
||||
|
||||
|
||||
/**
|
||||
* Class ListMultipartUploadResult
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class ListMultipartUploadResult extends Result
|
||||
{
|
||||
/**
|
||||
* Parse the return data from the ListMultipartUpload interface
|
||||
*
|
||||
* @return ListMultipartUploadInfo
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
$xml = simplexml_load_string($content);
|
||||
|
||||
$encodingType = isset($xml->EncodingType) ? strval($xml->EncodingType) : "";
|
||||
$bucket = isset($xml->Bucket) ? strval($xml->Bucket) : "";
|
||||
$keyMarker = isset($xml->KeyMarker) ? strval($xml->KeyMarker) : "";
|
||||
$keyMarker = OssUtil::decodeKey($keyMarker, $encodingType);
|
||||
$uploadIdMarker = isset($xml->UploadIdMarker) ? strval($xml->UploadIdMarker) : "";
|
||||
$nextKeyMarker = isset($xml->NextKeyMarker) ? strval($xml->NextKeyMarker) : "";
|
||||
$nextKeyMarker = OssUtil::decodeKey($nextKeyMarker, $encodingType);
|
||||
$nextUploadIdMarker = isset($xml->NextUploadIdMarker) ? strval($xml->NextUploadIdMarker) : "";
|
||||
$delimiter = isset($xml->Delimiter) ? strval($xml->Delimiter) : "";
|
||||
$delimiter = OssUtil::decodeKey($delimiter, $encodingType);
|
||||
$prefix = isset($xml->Prefix) ? strval($xml->Prefix) : "";
|
||||
$prefix = OssUtil::decodeKey($prefix, $encodingType);
|
||||
$maxUploads = isset($xml->MaxUploads) ? intval($xml->MaxUploads) : 0;
|
||||
$isTruncated = isset($xml->IsTruncated) ? strval($xml->IsTruncated) : "";
|
||||
$listUpload = array();
|
||||
|
||||
if (isset($xml->Upload)) {
|
||||
foreach ($xml->Upload as $upload) {
|
||||
$key = isset($upload->Key) ? strval($upload->Key) : "";
|
||||
$key = OssUtil::decodeKey($key, $encodingType);
|
||||
$uploadId = isset($upload->UploadId) ? strval($upload->UploadId) : "";
|
||||
$initiated = isset($upload->Initiated) ? strval($upload->Initiated) : "";
|
||||
$listUpload[] = new UploadInfo($key, $uploadId, $initiated);
|
||||
}
|
||||
}
|
||||
return new ListMultipartUploadInfo($bucket, $keyMarker, $uploadIdMarker,
|
||||
$nextKeyMarker, $nextUploadIdMarker,
|
||||
$delimiter, $prefix, $maxUploads, $isTruncated, $listUpload);
|
||||
}
|
||||
}
|
71
vendor/oss-sdk/src/OSS/Result/ListObjectsResult.php
vendored
Executable file
71
vendor/oss-sdk/src/OSS/Result/ListObjectsResult.php
vendored
Executable file
@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Core\OssUtil;
|
||||
use OSS\Model\ObjectInfo;
|
||||
use OSS\Model\ObjectListInfo;
|
||||
use OSS\Model\PrefixInfo;
|
||||
|
||||
/**
|
||||
* Class ListObjectsResult
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class ListObjectsResult extends Result
|
||||
{
|
||||
/**
|
||||
* Parse the xml data returned by the ListObjects interface
|
||||
*
|
||||
* return ObjectListInfo
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$xml = new \SimpleXMLElement($this->rawResponse->body);
|
||||
$encodingType = isset($xml->EncodingType) ? strval($xml->EncodingType) : "";
|
||||
$objectList = $this->parseObjectList($xml, $encodingType);
|
||||
$prefixList = $this->parsePrefixList($xml, $encodingType);
|
||||
$bucketName = isset($xml->Name) ? strval($xml->Name) : "";
|
||||
$prefix = isset($xml->Prefix) ? strval($xml->Prefix) : "";
|
||||
$prefix = OssUtil::decodeKey($prefix, $encodingType);
|
||||
$marker = isset($xml->Marker) ? strval($xml->Marker) : "";
|
||||
$marker = OssUtil::decodeKey($marker, $encodingType);
|
||||
$maxKeys = isset($xml->MaxKeys) ? intval($xml->MaxKeys) : 0;
|
||||
$delimiter = isset($xml->Delimiter) ? strval($xml->Delimiter) : "";
|
||||
$delimiter = OssUtil::decodeKey($delimiter, $encodingType);
|
||||
$isTruncated = isset($xml->IsTruncated) ? strval($xml->IsTruncated) : "";
|
||||
$nextMarker = isset($xml->NextMarker) ? strval($xml->NextMarker) : "";
|
||||
$nextMarker = OssUtil::decodeKey($nextMarker, $encodingType);
|
||||
return new ObjectListInfo($bucketName, $prefix, $marker, $nextMarker, $maxKeys, $delimiter, $isTruncated, $objectList, $prefixList);
|
||||
}
|
||||
|
||||
private function parseObjectList($xml, $encodingType)
|
||||
{
|
||||
$retList = array();
|
||||
if (isset($xml->Contents)) {
|
||||
foreach ($xml->Contents as $content) {
|
||||
$key = isset($content->Key) ? strval($content->Key) : "";
|
||||
$key = OssUtil::decodeKey($key, $encodingType);
|
||||
$lastModified = isset($content->LastModified) ? strval($content->LastModified) : "";
|
||||
$eTag = isset($content->ETag) ? strval($content->ETag) : "";
|
||||
$type = isset($content->Type) ? strval($content->Type) : "";
|
||||
$size = isset($content->Size) ? intval($content->Size) : 0;
|
||||
$storageClass = isset($content->StorageClass) ? strval($content->StorageClass) : "";
|
||||
$retList[] = new ObjectInfo($key, $lastModified, $eTag, $type, $size, $storageClass);
|
||||
}
|
||||
}
|
||||
return $retList;
|
||||
}
|
||||
|
||||
private function parsePrefixList($xml, $encodingType)
|
||||
{
|
||||
$retList = array();
|
||||
if (isset($xml->CommonPrefixes)) {
|
||||
foreach ($xml->CommonPrefixes as $commonPrefix) {
|
||||
$prefix = isset($commonPrefix->Prefix) ? strval($commonPrefix->Prefix) : "";
|
||||
$prefix = OssUtil::decodeKey($prefix, $encodingType);
|
||||
$retList[] = new PrefixInfo($prefix);
|
||||
}
|
||||
}
|
||||
return $retList;
|
||||
}
|
||||
}
|
42
vendor/oss-sdk/src/OSS/Result/ListPartsResult.php
vendored
Executable file
42
vendor/oss-sdk/src/OSS/Result/ListPartsResult.php
vendored
Executable file
@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Model\ListPartsInfo;
|
||||
use OSS\Model\PartInfo;
|
||||
|
||||
|
||||
/**
|
||||
* Class ListPartsResult
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class ListPartsResult extends Result
|
||||
{
|
||||
/**
|
||||
* Parse the xml data returned by the ListParts interface
|
||||
*
|
||||
* @return ListPartsInfo
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
$xml = simplexml_load_string($content);
|
||||
$bucket = isset($xml->Bucket) ? strval($xml->Bucket) : "";
|
||||
$key = isset($xml->Key) ? strval($xml->Key) : "";
|
||||
$uploadId = isset($xml->UploadId) ? strval($xml->UploadId) : "";
|
||||
$nextPartNumberMarker = isset($xml->NextPartNumberMarker) ? intval($xml->NextPartNumberMarker) : "";
|
||||
$maxParts = isset($xml->MaxParts) ? intval($xml->MaxParts) : "";
|
||||
$isTruncated = isset($xml->IsTruncated) ? strval($xml->IsTruncated) : "";
|
||||
$partList = array();
|
||||
if (isset($xml->Part)) {
|
||||
foreach ($xml->Part as $part) {
|
||||
$partNumber = isset($part->PartNumber) ? intval($part->PartNumber) : "";
|
||||
$lastModified = isset($part->LastModified) ? strval($part->LastModified) : "";
|
||||
$eTag = isset($part->ETag) ? strval($part->ETag) : "";
|
||||
$size = isset($part->Size) ? intval($part->Size) : "";
|
||||
$partList[] = new PartInfo($partNumber, $lastModified, $eTag, $size);
|
||||
}
|
||||
}
|
||||
return new ListPartsInfo($bucket, $key, $uploadId, $nextPartNumberMarker, $maxParts, $isTruncated, $partList);
|
||||
}
|
||||
}
|
16
vendor/oss-sdk/src/OSS/Result/PutLiveChannelResult.php
vendored
Executable file
16
vendor/oss-sdk/src/OSS/Result/PutLiveChannelResult.php
vendored
Executable file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Model\LiveChannelInfo;
|
||||
|
||||
class PutLiveChannelResult extends Result
|
||||
{
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$content = $this->rawResponse->body;
|
||||
$channel = new LiveChannelInfo();
|
||||
$channel->parseFromXml($content);
|
||||
return $channel;
|
||||
}
|
||||
}
|
20
vendor/oss-sdk/src/OSS/Result/PutSetDeleteResult.php
vendored
Executable file
20
vendor/oss-sdk/src/OSS/Result/PutSetDeleteResult.php
vendored
Executable file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
|
||||
/**
|
||||
* Class PutSetDeleteResult
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class PutSetDeleteResult extends Result
|
||||
{
|
||||
/**
|
||||
* @return array()
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$body = array('body' => $this->rawResponse->body);
|
||||
return array_merge($this->rawResponse->header, $body);
|
||||
}
|
||||
}
|
175
vendor/oss-sdk/src/OSS/Result/Result.php
vendored
Executable file
175
vendor/oss-sdk/src/OSS/Result/Result.php
vendored
Executable file
@ -0,0 +1,175 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Core\OssException;
|
||||
use OSS\Http\ResponseCore;
|
||||
|
||||
|
||||
/**
|
||||
* Class Result, The result class of The operation of the base class, different requests in dealing with the return of data have different logic,
|
||||
* The specific parsing logic postponed to subclass implementation
|
||||
*
|
||||
* @package OSS\Model
|
||||
*/
|
||||
abstract class Result
|
||||
{
|
||||
/**
|
||||
* Result constructor.
|
||||
* @param $response ResponseCore
|
||||
* @throws OssException
|
||||
*/
|
||||
public function __construct($response)
|
||||
{
|
||||
if ($response === null) {
|
||||
throw new OssException("raw response is null");
|
||||
}
|
||||
$this->rawResponse = $response;
|
||||
$this->parseResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get requestId
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getRequestId()
|
||||
{
|
||||
if (isset($this->rawResponse) &&
|
||||
isset($this->rawResponse->header) &&
|
||||
isset($this->rawResponse->header['x-oss-request-id'])
|
||||
) {
|
||||
return $this->rawResponse->header['x-oss-request-id'];
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the returned data, different request returns the data format is different
|
||||
*
|
||||
* $return mixed
|
||||
*/
|
||||
public function getData()
|
||||
{
|
||||
return $this->parsedData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Subclass implementation, different requests return data has different analytical logic, implemented by subclasses
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
abstract protected function parseDataFromResponse();
|
||||
|
||||
/**
|
||||
* Whether the operation is successful
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function isOK()
|
||||
{
|
||||
return $this->isOk;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws OssException
|
||||
*/
|
||||
public function parseResponse()
|
||||
{
|
||||
$this->isOk = $this->isResponseOk();
|
||||
if ($this->isOk) {
|
||||
$this->parsedData = $this->parseDataFromResponse();
|
||||
} else {
|
||||
$httpStatus = strval($this->rawResponse->status);
|
||||
$requestId = strval($this->getRequestId());
|
||||
$code = $this->retrieveErrorCode($this->rawResponse->body);
|
||||
$message = $this->retrieveErrorMessage($this->rawResponse->body);
|
||||
$body = $this->rawResponse->body;
|
||||
|
||||
$details = array(
|
||||
'status' => $httpStatus,
|
||||
'request-id' => $requestId,
|
||||
'code' => $code,
|
||||
'message' => $message,
|
||||
'body' => $body
|
||||
);
|
||||
throw new OssException($details);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Try to get the error message from body
|
||||
*
|
||||
* @param $body
|
||||
* @return string
|
||||
*/
|
||||
private function retrieveErrorMessage($body)
|
||||
{
|
||||
if (empty($body) || false === strpos($body, '<?xml')) {
|
||||
return '';
|
||||
}
|
||||
$xml = simplexml_load_string($body);
|
||||
if (isset($xml->Message)) {
|
||||
return strval($xml->Message);
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Try to get the error Code from body
|
||||
*
|
||||
* @param $body
|
||||
* @return string
|
||||
*/
|
||||
private function retrieveErrorCode($body)
|
||||
{
|
||||
if (empty($body) || false === strpos($body, '<?xml')) {
|
||||
return '';
|
||||
}
|
||||
$xml = simplexml_load_string($body);
|
||||
if (isset($xml->Code)) {
|
||||
return strval($xml->Code);
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Judging from the return http status code, [200-299] that is OK
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function isResponseOk()
|
||||
{
|
||||
$status = $this->rawResponse->status;
|
||||
if ((int)(intval($status) / 100) == 2) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the original return data
|
||||
*
|
||||
* @return ResponseCore
|
||||
*/
|
||||
public function getRawResponse()
|
||||
{
|
||||
return $this->rawResponse;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicate whether the request is successful
|
||||
*/
|
||||
protected $isOk = false;
|
||||
/**
|
||||
* Data parsed by subclasses
|
||||
*/
|
||||
protected $parsedData = null;
|
||||
/**
|
||||
* Store the original Response returned by the auth function
|
||||
*
|
||||
* @var ResponseCore
|
||||
*/
|
||||
protected $rawResponse;
|
||||
}
|
24
vendor/oss-sdk/src/OSS/Result/SymlinkResult.php
vendored
Executable file
24
vendor/oss-sdk/src/OSS/Result/SymlinkResult.php
vendored
Executable file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Core\OssException;
|
||||
use OSS\OssClient;
|
||||
|
||||
/**
|
||||
*
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class SymlinkResult extends Result
|
||||
{
|
||||
/**
|
||||
* @return string
|
||||
* @throws OssException
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$this->rawResponse->header[OssClient::OSS_SYMLINK_TARGET] = rawurldecode($this->rawResponse->header[OssClient::OSS_SYMLINK_TARGET]);
|
||||
return $this->rawResponse->header;
|
||||
}
|
||||
}
|
||||
|
28
vendor/oss-sdk/src/OSS/Result/UploadPartResult.php
vendored
Executable file
28
vendor/oss-sdk/src/OSS/Result/UploadPartResult.php
vendored
Executable file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace OSS\Result;
|
||||
|
||||
use OSS\Core\OssException;
|
||||
|
||||
/**
|
||||
* Class UploadPartResult
|
||||
* @package OSS\Result
|
||||
*/
|
||||
class UploadPartResult extends Result
|
||||
{
|
||||
/**
|
||||
* 结果中part的ETag
|
||||
*
|
||||
* @return string
|
||||
* @throws OssException
|
||||
*/
|
||||
protected function parseDataFromResponse()
|
||||
{
|
||||
$header = $this->rawResponse->header;
|
||||
if (isset($header["etag"])) {
|
||||
return $header["etag"];
|
||||
}
|
||||
throw new OssException("cannot get ETag");
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user