1. 安装php:
sudo apt-get install php php-curl php-mbstring -y
2. 安装阿里云php oss sdk:
composer require aliyuncs/oss-sdk-php
3. 建立一个测试程序:
<?php
require_once __DIR__ . '/vendor/autoload.php';
use OSS\OssClient;
use OSS\Core\OssException;$accessKeyId = "你的阿里云oss key id";
$accessKeySecret = "你的key密码";
$endpoint = "oss-cn-beijing.aliyuncs.com";try {
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
} catch (OssException $e) {
print $e->getMessage();
}$bucket= "pythinker";
$object = "filename.txt";
$content = "Hello, OSS!"; // Content of the uploaded filetry {
$ossClient->putObject($bucket, $object, $content);
} catch (OssException $e) {
print $e->getMessage();
}
?>
4. 运行
php test.php
这样在阿里云oss对象存储服务器新建 filename.txt 文件成功了。
离线
现在我有一个问题,如果用MSVC/Qt做一个windows本地 oss 应用程序, 如何才能保护好 秘钥?
离线
@超级萌新 试了一下 csdn 下载, 还真是阿里云oss噢, 以前一直以为是csdn服务器自己存文件, 不明白为什么我把这个地址粘贴到别的浏览器就不能下载, 出现上面的 You are denied by bucket referer policy. 错误, 难道阿里云又跳转到 csdn 服务器校验是否登录?
离线
referer是最简单的防盗链,很容易伪造的。
看你安全的要求,referer是由浏览器,根据当前页面发送的,很容易摸拟。直接在浏览器中输入的地址referer是null.
如果在whycan中的某个页面引用,浏览器发送的 referer=whycan.com/
r安全要求高的话每一个下载链接都要通过时间戳生成密钥。
刚刚模拟了一下 http://download.csdn.net/ 的 referer,
还是用上面的下载链接,
出现了下面的错误: https://public-download.csdn.net/500.html
<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<RequestId>5E6F18CF6B3F22383545651F</RequestId>
<HostId>csdn-dl-public.oss-cn-beijing.aliyuncs.com</HostId>
<Key>500.html</Key>
</Error>
从这个错误The specified key does not exist.看来,
referer 只是第一道防线,后面还要验证 key,
我推测 csdn 为每个用户在 aliyun oss 申请了一个独立的 key。
现在我还没找到上面这步如何操作实现的,
如果这个能实现, 我觉得 aliyun oss 还是挺实用的。
离线
如果是上面哪个地址,是带了签名和时间戳的。这带来一个问题,在百度搜索上也显示不了。所以做这个时要区分,需要SEO的与下载的分开。
感谢回复, 我现在不需要 SEO, 也不需要百度搜索到,只需要像csdn这样鉴权,
员工登录到公司网站才给这个地址 aliyun oss 地址,
否则即使得到这个地址也不给下载。
离线
根据关键字security-token 搜到资料了:
https://help.aliyun.com/document_detail/100624.html
OSS可以通过阿里云STS(Security Token Service)进行临时授权访问。通过STS,您可以为第三方应用或子用户(即用户身份由您自己管理的用户)颁发一个自定义时效和权限的访问凭证。
离线