Write the Code. Change the World.

8月 26

oss 上传 api 中,一个是上传 file ,有个是上传 content 。如何处理各种文件以及数据格式呢。常见的一种操作是上传图片。这里就弄弄看。

操作一波

如果上传的图片是 base64 ,先要转换。我们这里定义一个函数。

function base64ToImage($file)
{
    if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $file, $result)) {
        $image = base64_decode(str_replace($result[1], '', $file));
        return $image;
    }
    return null;
}

我们还知道怎么拼接完成的 url。

# 这样就可以获取公网 url,当然你也可以获取内网 url
$url = App\Services\Oss::getPublicObjectURL($ossKey);

在这里,我们是先将文件传到服务器,再从服务器将文件传到 oss 上。这时,就用内网上传即可。流量要钱的,这样蛮好的。为什么不直接传 oss 上呢。直接传服务端逻辑不方便操作,直接传权限控制不好处理。反正就这种操作吧。

上边的还没说完,转换后,需要内网上传。

$file = base64ToImage($request->file);
$ossKey = ''upload/images/meets/1.jpg;
if($file) {
    $uploaded  = Oss::privateUploadContent($ossKey, $file);
}

想要删也可以的

Oss::privateDeleteObject($ossKey);

图片处理

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

https://help.aliyun.com/product/31815.html

8月 26

package and github

https://packagist.org/packages/johnlui/aliyun-oss

https://github.com/johnlui/AliyunOSS

适应 laravel7 版本的请看
https://github.com/johnlui/AliyunOSS-Laravel7

操作一波

composer require johnlui/aliyun-oss

新建配置文件 config/alioss.php,填充下边的 code 。

<?php
return [
    'AccessKeyId' => env('ALIOSS_KEYID', null),                     // key
    'AccessKeySecret' => env('ALIOSS_KEYSECRET', null),             // secret
    'BucketName' => env('ALIOSS_BUCKETNAME', null)                  // bucket
];

并且在 .env.example 中加入下边的配置(养成好的习惯)。

# OSS 配置
ALIOSS_KEYID=
ALIOSS_KEYSECRET=
ALIOSS_BUCKETNAME=

继续阅读

8月 26

阿里的 rds 外网怎么连呢。需要一台能连接外网的 ecs 就可以。

操作一波

打开 navicat,新建一个连接。切换到 ssh 页签,输入 ssh 服务器的地址,账号和密码。如下图所示:

然后切换到 General(常规) 页签,填入 rds 的地址、用户名、密码,点击 test connection 即可。如下图所示:

好吧,就这样了。