阿里云内容设计中心-阿里云开发者社区

阿里云内容设计中心
阿里云产品优质内容聚集地。各种最佳实践,问答,产品体验活动等你来发现~
全部 问答

官方博客

公开课

活动

2

回答

1

回答

1

回答

hd4q62obg7msi 2021-11-29 3684浏览量 回答数 1

1

回答

hd4q62obg7msi 2021-12-01 3640浏览量 回答数 1

1

回答

1

回答

hd4q62obg7msi 2021-11-29 3611浏览量 回答数 1

1

回答

hd4q62obg7msi 2021-11-29 3582浏览量 回答数 1

1

回答

hd4q62obg7msi 2021-11-29 3560浏览量 回答数 1

1

回答

hd4q62obg7msi 2021-12-01 3438浏览量 回答数 1

0

回答

1

回答

1

回答

1

回答

给要上传的Object名称前加指定目录前缀即可。更多信息,请参见OSS和文件系统对比

let OSS = require('ali-oss')
let client = new OSS({
  region: '<Your region>',
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>',
  bucket: 'Your bucket name'
});

client.multipartUpload('base-dir/' +'object-key', 'local-file', {
    progress: async function (p) {
      console.log('Progress: ' + p);
    }
  });
  console.log(result);
}).catch((err) => {
  console.log(err);
});

            
cattt 评论 0

base64先转码成指定格式图片,然后调用OSS上传接口进行上传。更多信息,请参见Github示例

/**
 * base64 to file
 * @param dataurl   base64 content
 * @param filename  set up a meaningful suffix, or you can set mime type in options
 * @returns {File|*}
 */
const dataURLtoFile = function dataURLtoFile(dataurl, filename) {
  const arr = dataurl.split(',');
  const mime = arr[0].match(/:(.*?);/)[1];
  const bstr = atob(arr[1]);
  let n = bstr.length;
  const u8arr = new Uint8Array(n);
  while (n--) {
    u8arr[n] = bstr.charCodeAt(n);
  }
  return new Blob([u8arr], { type: mime });// if env support File, also can use this: return new File([u8arr], filename, { type: mime });
};

// client表示OSS client实例
const uploadBase64Img = function uploadBase64Img(client) {
  // base64格式的内容
  const base64Content = 'data:image:xxxxxxxxxxxxx';
  const filename =  'img.png';
  const imgfile = dataURLtoFile(base64Content, filename);
  //key表示上传的object key ,imgFile表示dataURLtoFile处理后返回的图片
  client.multipartUpload(key, imgfile).then((res) => {
    console.log('upload success: %j', res);
  }).catch((err) => {
    console.error(err);
  });
};
            
cattt 评论 0

1

回答

给要上传的 object 名称前加指定目录前缀即可,可参考OSS 和文件系统对比

let OSS = require('ali-oss')
let client = new OSS({
  region: '<Your region>',
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>',
  bucket: '<Your bucket name>',
});

client.multipartUpload('base-dir/' +'object-name', 'local-file', {
    progress: async function (p) {
      console.log('Progress: ' + p);
    }
  });
  console.log(result);
}).then((res) => {
  console.log(res)
}). catch((err) => {
  console.log(err);
});

			
cattt 评论 0

初始化SDK时,可传入以下几个参数:


const client = new OSS({
region,
accessKeyId: creds.AccessKeyId,
accessKeySecret: creds.AccessKeySecret,
stsToken: creds.SecurityToken,
bucket,
secure:true
});
  • endpoint:例如http://oss-cn-hangzhou.aliyuncs.com,如果指定了endpoint,则region会被忽略,endpoint可以指定HTTPS,也可以是IP形式。
cattt 评论 0

前提条件

出现问题后请先确认您的实例版本,不同版本处理方法不同:

注意事项

执行本方案前需要注意以下内容:

  • 清理临时文件有延迟,请耐心等待实例已使用空间的下降。

  • 由于MySQL 5.7开始采用独立的临时表空间ibtmp1,可以通过重启实例或升级磁盘空间的方式释放空间。对于MySQL5.5/5.6实例,在不升级磁盘空间的前提下,比较好的解决方法是在同地域同可用区购买相同配置的RDS实例,通过DTS工具将数据迁移到新实例中。

操作步骤

本小节主要介绍如何迁移数据:

1、同地域同可用区购买相同配置的RDS实例,具体信息请参见创建RDS for MySQL实例

2、登录RDS管理控制台,在右上角单击迁移数据库进行迁移,具体迁移配置请参见RDS实例间的数据迁移155425506435952_zh-CN.png

后续维护

若锁定问题已解决,请参考以下步骤,预防再次出现锁定问题:

  • 在资源不足时,自动扩容存储空间,详情请参见设置存储空间自动扩容

  • 避免出现执行效率很差的SQL大量执行的情况。

  • 尽量在业务低峰期进行索引创建删除、表结构修改、表维护和表删除操作。

  • 建议您监控和清理执行时间过长的会话或事务。

cattt 评论 0

使用分片上传时,可通过progress参数获取上传进度。

cattt 评论 0

数据库账号或数据库密码不正确

检测方法

在任何一台可以连接目标数据库的设备上,使用数据迁移任务中填入的数据库账号和数据库密码连接目标数据库,验证数据库账号和数据库密码是否正确。

说明:您也可以直接在目标数据库部署的服务器上验证数据库账号和数据库密码是否正确。

修复方法

登录数据传输控制台,修改数据迁移任务,填入正确的数据库账号和数据库密码后重新执行预检查。

目标数据库对来源IP进行了限制

检测方法

select host,user,authentication_string,password_expired,account_locked from mysql.user WHERE user='[$Username]';

说明:将[$Username]替换为数据迁移任务中填写的数据库账号。

  • 如果目标数据库为SQL Server,那么检查SQL Server的安装服务器上是否设置了防火墙,或者检查目标数据库中是否有Endpoint或Trigger限制了访问来源IP。

  • 如果目标数据库为Oracle,那么检查目标数据库的sqlnet.ora配置文件,检查配置项TCP.VALIDNODE_CHECKING是否为yes。如果为yes,说明目标数据库限制了访问来源IP。

修复方法

1、根据不同类型的目标数据库,选择对应的修复方法进行修复。

如果目标数据库为MySQL,您可以在目标数据库中执行以下SQL语句,为数据迁移使用的数据库账号重新授权。

GRANT ALL PRIVILEGES ON *.* TO '[$Username]'@'%' IDENTIFIED BY '[$Password]' WITH GRANT OPTION;

说明:将[$Username]和[$Password]替换为数据迁移任务中填写的数据库账号和数据库密码。

如果目标数据库为SQL Server,关闭防火墙或禁用trigger。

如果目标数据库为Oracle,修改TCP.VALIDNODE_CHECKING为no,并重启进程。

2、执行了上述修复操作后,登录数据传输控制台,重新执行预检查。

**目标数据库所在网络或服务器设置了防火墙

检测方法**

请根据现场情况,进行以下检查步骤:

  • 查看数据库所在的服务器是否开启了防火墙并配置了防火墙策略:

如果安装目标数据库的服务器为Windows系统,打开控制面板找到Windows防火墙,查看是否配置了防火墙策略。

如果安装目标数据库的服务器为Linux系统,请执行iptables -L命令,检查服务器是否配置了防火墙策略。

  • 查看数据库所在的网络防火墙是否限制了DTS的IP地址段,本文以云防火墙为例进行介绍。

a.登录云防火墙控制台,在左侧导航栏单击访问控制。

b.查看云防火墙是否存在禁止DTS的IP地址段的策略,DTS的IP地址段的信息请参见迁移、同步或订阅本地数据库时需添加的IP白名单

1.png

修复方法

请根据现场情况,选择以下对应的步骤:

  • 服务器开启了防火墙

a.关闭服务器的防火墙,然后登录数据传输控制台,重新执行预检查。

说明:该方法Windows和Linux系统都适用。

b.将DTS的IP地址段加入至目标实例的白名单中,详细操作请参见设置白名单及安全组

  • 网络防火墙限制了DTS的IP地址段

临时关闭数据库所在的网络防火墙或者将DTS的IP地址段添加到白名单中,以云防火墙为例,您可以删除禁止DTS的IP地址段的策略。

网络互通存在问题

经过上述排查后仍然无法通过目标数据库连接性检查,可能是DTS服务器与目标数据库网络互通存在问题,您可以通过提交工单联系阿里云技术支持进行协助解决。

cattt 评论 0

您可以使用ossutil工具快速定位错误原因并解决问题。

cattt 评论 0

公告

阿里云内容设计团队出没于此,一大波优质阿里云相关内容随时袭来~
展开