我们使用的阿里云 OSS bucket 中,有一个 bucket 当时创建时选用了低频访问
类型,现在想改为标准存储
类型,但 OSS 不支持这样的更改,只能在当前区域重新创建 bucket ,然后将低频访问 bucket 中的文件全部复制过来,但是在阿里云 OOS 控制台没有找到 bucket 之间复制文件的功能,请问有什么办法可以解决这个问题?
相关问题
- 如何开通阿里云负载均衡的访问日志功能
- 阿里云服务器更换主机名时提示“当前实例的主机名不支持 windows 镜像”
- 如何通过 aliyuncli 命令修改负载均衡带宽
- 阿里云 OSS 如何复制所有文件到另一个 bucket
- Kubernetes 集群中挂载阿里云 nas 如何添加 noresvport 参数
阿里云有复制单个oss对象的API, 复制整个bucket好像还真没有。
最好提工单给阿里,让他们给解决方案。
拐了十八弯,通过 oss 的
跨区域复制
功能解决了。当前 oss bucket
cnblogs-bucket-a
在华东1(杭州)
区域,在华东2(上海)
创建 oss bucketcnblogs-bucket-b
,在cnblogs-bucket-a
的 oss 控制台冗余与容错
->跨区域复制
中开启同步,同步到cnblogs-bucket-b
,历史文件90分钟之后才会启动同步,同步等待时间较长。cnblogs-bucket-a
->cnblogs-bucket-b
的同步完成后, 在cnblogs-bucket-b
的 oss 控制台继续开启同步,同步到华东1(杭州)
区域的最终目标cnblogs-bucket-c
,完成。授权新OSS的BucketName的AccessKeyID可以访问操作原先旧的OSS的BucketName,具体如下:
//创建oss客户端
var ossClient = new OssClient(ossConfig.EndPoint, ossConfig.AccessId, ossConfig.Accesskey);
var metadata = new ObjectMetadata { ContentDisposition = "attachment" };
var req = new CopyObjectRequest(ossConfig.BucketName, sourceObject, targetBucket, targetObject)
{
// 如果NewObjectMetadata为null则为COPY模式(即拷贝源文件的元信息),非null则为REPLACE模式(覆盖源文件的元信息)。
NewObjectMetadata = metadata
};
// 拷贝文件。
ossClient.CopyObject(req);
看看这个https://developer.aliyun.com/ask/2220?spm=a2c6h.13159741