您尚未登录。

楼主 #1 2020-03-14 15:54:29

pythinker
会员
注册时间: 2019-02-12
已发帖子: 215
积分: 215

用 php 测试 阿里云的 oss 对象存储云服务

1. 安装php:

sudo apt-get install php php-curl php-mbstring -y

2. 安装阿里云php oss sdk:

composer require aliyuncs/oss-sdk-php

3. 建立一个测试程序:

test.php 说:

<?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 file

try {
    $ossClient->putObject($bucket, $object, $content);
} catch (OssException $e) {
    print $e->getMessage();
}
?>

4. 运行

php test.php

这样在阿里云oss对象存储服务器新建 filename.txt 文件成功了。

参考: https://github.com/aliyun/aliyun-oss-php-sdk

离线

楼主 #2 2020-03-14 15:56:22

pythinker
会员
注册时间: 2019-02-12
已发帖子: 215
积分: 215

Re: 用 php 测试 阿里云的 oss 对象存储云服务

现在我有一个问题,如果用MSVC/Qt做一个windows本地 oss 应用程序, 如何才能保护好 秘钥?

离线

楼主 #5 2020-03-16 11:59:15

pythinker
会员
注册时间: 2019-02-12
已发帖子: 215
积分: 215

Re: 用 php 测试 阿里云的 oss 对象存储云服务

@超级萌新 试了一下 csdn 下载, 还真是阿里云oss噢, 以前一直以为是csdn服务器自己存文件, 不明白为什么我把这个地址粘贴到别的浏览器就不能下载, 出现上面的 You are denied by bucket referer policy. 错误, 难道阿里云又跳转到 csdn 服务器校验是否登录?

离线

楼主 #7 2020-03-16 14:18:38

pythinker
会员
注册时间: 2019-02-12
已发帖子: 215
积分: 215

Re: 用 php 测试 阿里云的 oss 对象存储云服务

staunchheart 说:

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 还是挺实用的。

离线

楼主 #9 2020-03-16 14:29:26

pythinker
会员
注册时间: 2019-02-12
已发帖子: 215
积分: 215

Re: 用 php 测试 阿里云的 oss 对象存储云服务

staunchheart 说:

如果是上面哪个地址,是带了签名和时间戳的。这带来一个问题,在百度搜索上也显示不了。所以做这个时要区分,需要SEO的与下载的分开。

感谢回复, 我现在不需要 SEO, 也不需要百度搜索到,只需要像csdn这样鉴权,

员工登录到公司网站才给这个地址 aliyun oss 地址,

否则即使得到这个地址也不给下载。

离线

楼主 #10 2020-03-16 14:54:14

pythinker
会员
注册时间: 2019-02-12
已发帖子: 215
积分: 215

Re: 用 php 测试 阿里云的 oss 对象存储云服务

根据关键字security-token 搜到资料了:

https://help.aliyun.com/document_detail/100624.html

OSS可以通过阿里云STS(Security Token Service)进行临时授权访问。通过STS,您可以为第三方应用或子用户(即用户身份由您自己管理的用户)颁发一个自定义时效和权限的访问凭证。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn