很多用户使用七牛过程中有将资源从一个空间复制到另外一个空间的需求,这种情况下可用我们的sdk先list出所有的文件然后在批量复制,但是使用同步工具进行同步的方法是最快的,下面详解这种方法:

1.下载七牛的同步工具qshell: http://developer.qiniu.com/docs/v6/tools/qshell.html

2.登录到当前账户下 qshell account 《AK》 《SK》

3.使用listbucket命令列举出需要复制的当前空间 https://github.com/qiniu/qshell/wiki/listbucket
使用的命令 qshell listbucket 《Bucket》 [《Prefix》] 《ListBucketResultFile》
本例中的命令如下:
qshell listbucket copytest1 cp.txt

4.上步操作后会在当前目录下生成一个名为cp.txt的list文件列表,格式如下:

photo-2.jpg 109787 FvaTV7fZz6G_1W6WyzQdktMbqPuv 14526031733113853 image/jpeg 
photo3.jpg 256148 Fq3vt4smenbZ_ev-iba2Yukx5d9B 14526031741765437 image/jpeg 
photo4.jpg 194277 FtxVybqCmEm_ZWEJ6l2vg-qKbzWh 14526031747456153 image/jpeg 
photo5.jpg 131862 FslN6hs8puP_ksS6KYCl0OxgcWoO 14526031770721477 image/jpeg
5.而我们只需要得到最前面的文件key就可以了,可以使用一条awk字符处理命令就可以了
cat cp.txt | awk '{print $1}' >cpp.txt

这样就在当前目录生成了一个如下只包含文件的key的txt文件cpp.txt

photo-2.jpg
photo3.jpg
photo4.jpg
photo5.jpg
6.使用batchcopy命令将文件同步到需要复制的空间里面 https://github.com/qiniu/qshell/wiki/batchcopy
这里直接给出命令,将copytest1空间文件复制到copytest2空间
qshell batchcopy copytest1 copytest2 cpp.txt
实际过程中可能会让确认操作,相应确认下就可以了,执行结果参考如下:
~/tools » qshell batchcopy copytest1 copytest2 cpp.txt 
<DANGER> Input gcafcc to confirm operation: gcafcc 
All Copyed!

至此文件就成功从copytest1空间文件复制到copytest2空间了,当然复制过程中也可以实现对文件的命名操作,具体可以参考https://github.com/qiniu/qshell/wiki/batchcopy

文章转自

一、打开3306端口

如果您的操作系统为CentOS系列
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
service iptables save #保存iptables规则
如果您的操作系统为Ubuntu/Debian系列
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
iptables-save > /etc/iptables.up.rules #保存iptables规则

二、数据库授权

MySQL8.0版本
# mysql -uroot -p
 MySQL [(none)]> create user db_user@'%' identified by 'db_pass'; #创建用户
 MySQL [(none)]> grant all privileges on db_name.* to db_user@'%' with grant option; #授权
 MySQL [(none)]> exit; #退出数据库控制台,特别注意有分号
其余MySQL版本
# mysql -uroot -p
 MySQL [(none)]> grant all privileges on db_name.* to db_user@'%' identified by 'db_pass'; #授权语句,特别注意有分号
 MySQL [(none)]> flush privileges;
 MySQL [(none)]> exit; #退出数据库控制台,特别注意有分号
PS:如果想让这个用户管理所有的表而不是某个表:db_name.* 改为 *.* 即可;

1、date:某个日期
2、between:几个月后(2代表一个月的这天,3代表2个月的这天)

PS、2018-11-29,5:(就是11-29往后4个月的今天是多少号)

public function getNextMonthDays($date,$between){
        $firstday = date('Y-m-01', strtotime($date));
        $lastday = strtotime("$firstday +$between month -1 day");
        $day_lastday = date('d', $lastday); //获取下个月份的最后一天
        $day_benlastday = date('d', strtotime("$firstday +1 month -1 day")); //获取本月份的最后一天

        //获取当天日期
        $Same_day = date('d', strtotime($date));
        //判断当天是否是最后一天   或 下月最后一天 等于 本月的最后一天
        if($Same_day == $day_benlastday ||$day_lastday == $Same_day){
            $day = $day_lastday;

        }else{
            $day = $Same_day;

        }
        $day = date('Y',$lastday).'-'.date('m',$lastday).'-'.$day;

        return $day;

    }

html代码
<input id="demoInput" value="hello world">
<button id="btn">点我复制</button>
js代码
<script>
const btn = document.querySelector('#btn');
btn.addEventListener('click', () => {
    const input = document.querySelector('#demoInput');
    input.select();
    if (document.execCommand('copy')) {
        document.execCommand('copy');
        alert('复制成功');
    }
})
</script>