设置object的acl,有三种模式,
(1).设置详细json格式的acl;
a. $acl 为json的array
b. $acl 为json的string
(2).通过acl_type字段进行设置
a. $acl 为BaiduBCS::$ACL_ACTIONS中的字段
function mv_attachments_to_bcs($data) { require_once 'bcs.class.php'; $bcs_options = get_option('bcs_options', TRUE); $bcs_bucket = attribute_escape($bcs_options['bucket']); if (false === getenv('HTTP_BAE_ENV_AK')) { $bcs_ak = attribute_escape($bcs_options['ak']); } if (false === getenv('HTTP_BAE_ENV_SK')) { $bcs_sk = attribute_escape($bcs_options['sk']); } $is_Enabled_asl = attribute_escape($bcs_options['is_Enabled_asl']); $baidu_bcs = new BaiduBCS($bcs_ak, $bcs_sk); $bucket = $bcs_bucket; $year = date("Y"); $month = date("m"); $object = "/blog/" . $year . $month . "/" . basename($data['file']); $file = $data['file']; $opt = array("acl" => "public-read"); $baidu_bcs->create_object($bucket, $object, $file, $opt); if ($is_Enabled_asl) { $referer = attribute_escape($bcs_options['referer']); $referer2 = attribute_escape($bcs_options['referer2']); if (!empty($referer)) { if (!empty($referer2)) { $referer = array($referer, $referer2); } else { $referer = array($referer); } } else { $referer = preg_replace('#^www\\.#', '', strtolower($_SERVER['SERVER_NAME'])); $referer = '*.' . preg_replace('#^blog\\.#', '', $referer) . '/*'; $referer = array($referer); } $acl = array('statements' => array('0' => array('user' => array("*"), 'resource' => array($bucket . $object), 'action' => array(BaiduBCS::BCS_SDK_ACL_ACTION_GET_OBJECT), 'effect' => BaiduBCS::BCS_SDK_ACL_EFFECT_ALLOW, 'referer' => $referer))); $baidu_bcs->set_object_acl($bucket, $object, $acl); } $url = "http://bcs.duapp.com/{$bucket}{$object}"; return array('file' => $url, 'url' => $url, 'type' => $data['type']); }
function xmlrpc_upload($args) { $data = $args[3]; $name = sanitize_file_name($data['name']); $type = $data['type']; $bits = $data['bits']; require_once 'bcs.class.php'; $bcs_options = get_option('bcs_options', TRUE); $bcs_bucket = attribute_escape($bcs_options['bucket']); if (false === getenv('HTTP_BAE_ENV_AK')) { $bcs_ak = attribute_escape($bcs_options['ak']); } if (false === getenv('HTTP_BAE_ENV_SK')) { $bcs_sk = attribute_escape($bcs_options['sk']); } $baidu_bcs = new BaiduBCS($bcs_ak, $bcs_sk); $bucket = $bcs_bucket; $object = "/" . $hiPath . "/" . $name; $opt = array("acl" => "public-read"); $baidu_bcs->create_object_by_content($bucket, $object, $bits, $opt); if ($is_Enabled_asl) { $referer = attribute_escape($bcs_options['referer']); $referer2 = attribute_escape($bcs_options['referer2']); if (!empty($referer)) { if (!empty($referer2)) { $referer = array($referer, $referer2); } else { $referer = array($referer); } } else { $referer = preg_replace('#^www\\.#', '', strtolower($_SERVER['SERVER_NAME'])); $referer = '*.' . preg_replace('#^blog\\.#', '', $referer) . '/*'; $referer = array($referer); } $acl = array('statements' => array('0' => array('user' => array("*"), 'resource' => array($bucket . $object), 'action' => array(BaiduBCS::BCS_SDK_ACL_ACTION_GET_OBJECT), 'effect' => BaiduBCS::BCS_SDK_ACL_EFFECT_ALLOW, 'referer' => $referer))); $baidu_bcs->set_object_acl($bucket, $object, $acl); } $url = "http://bcs.duapp.com/{$bucket}{$object}"; return array('file' => $url, 'url' => $url, 'type' => $data['type']); }