官方文档研究了有近一周,百度了很多相关的关键词,仍然找不到头绪和进展。
唯一找到了几篇demo大多是前几年的,感觉与官方接口给的demo又对不上。
新手刚接触,还希望php方面的大侠可以指点我一二。
我说一下我的困惑。
我想上传图片,也就是上传Object,在官方给的php接口中demo里面找到的相关示例如下:
//上传object 相关示例以上代码中用到了一个方法是 upload_file_by_content
/**
*简单上传
*上传指定变量的内存值
*/
$object = "oss-php-sdk-test/upload-test-object-name.txt";
$content = 'hello world';
$options = array(
'content' => $content,
'length' => strlen($content),
);
$res = $oss->upload_file_by_content($bucket, $object, $options);
$msg = "上传字符串到 /" . $bucket . "/" . $object;
OSSUtil::print_res($res, $msg);
/**
*上传时设定Object的Http Header
*上传指定变量的内存值
*指定object的content-type, 如果不指定的话,会根据object的后缀去 mimetypes.class.php 中获取
*指定object的常用HTTP头部 Cache-Control 、 Content-Disposition 、Content-Encoding 、 Expires
*/
$options = array(
'content' => $content,
'length' => strlen($content),
ALIOSS::OSS_HEADERS => array(
'Expires' => '2012-10-01 08:00:00',
'Cache-Control' => '2012-10-01 08:00:00',
'Content-Disposition' => 'just-for-test',
'Content-Type' => 'text/plain2',
'Content-Encoding' => 'utf-8',
'Content-Type' => 'text/plain',
),
);
$res = $oss->upload_file_by_content($bucket, $object, $options);
$msg = "上传字符串到 /" . $bucket . "/" . $object;
OSSUtil::print_res($res, $msg);
/**
*上传时设定设置User Meta
*上传指定变量的内存值
*User Meta 指定用户自定义的以x-oss-meta-开头的信息
*指定object的content-type, 如果不指定的话,会根据object的后缀去 mimetypes.class.php 中获取
*/
$options = array(
'content' => $content,
'length' => strlen($content),
ALIOSS::OSS_HEADERS => array(
'Content-Type' => 'text/plain',
'x-oss-meta-self-define-title' => 'user define meta info',
),
);
$res = $oss->upload_file_by_content($bucket, $object, $options);
$msg = "上传字符串到 /" . $bucket . "/" . $object;
OSSUtil::print_res($res, $msg);
我在其他地方又看到这样的代码
//向某个bucket上传内容,可以字符串或者文件是一篇13年的文章,我不知道是否值得参考 帖子不允许我发网址
function upload(OSSClient $client, $bucket,$key,$content,$type){
isset($type)?$type:0;
if($type == 0){
$type = gettype($content);
//如果上传内容为数组或者对象,需要进行序列化
if($type == "array" || $type == "object") {
$content = serialize($content);
}
$client->putObject(array( 'Bucket' => $bucket, 'Key' => $key, 'Content' => $content, ));
}else{
$client->putObject(
array( 'Bucket' => $bucket,
'Key' => $key,
'Content' => fopen($content, 'r'),
'ContentLength' => filesize($content),
));
}
}
这里面用到的上传方法是putObject
在OSS的API文章中,我也确实看到了put object的相关介绍
Put Object
请求语法
请求Header
细节分析
示例
Put Object
Put Object用于上传文件。
请求语法
PUT /ObjectName HTTP/1.1
Content-Length:ContentLength
Content-Type: ContentType
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
看了请求语法,我实在不理解这要如何请求,在哪里发出请求,和sdk中的demo是否需要结合,怎样结合。
希望有了解这方面的前辈指教一二,如果有相关的php图片oss上传demo更好,谢谢大家了~
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。