分享天某云对象存储开发的体验

       最近体验了天某云对象存储的功能,作为一名资深开发者,开发体验差强人意,与阿里云存在一定的差距。

     首先在开发文档上居然没有基于nodejs的代码示例,只有java,c#,go等的代码示例,虽然有javascript的,但那也只适用于浏览器端。难道nodejs就这么不受待见,阿里腾讯的云服务开发我都用过不少,nodejs也是和几大主流语言,有自己一席之地,甚至当年阿里函数计算出来时都是只支持nodejs,这么到这里连个名字都没见,失败。

      然后看到也提供api调用的方式,就改用这个来实现对象存储的访问,结果调试发现,有明显的时延,做一次预签名下载链接生成,从发起调用到返回居然平均要1秒多,咨询技术支持,他说不清楚api调用,都是用的sdk访问,甩给我一个java写的demo,平均耗时不到600~800毫米,说仅预签名调用才几十毫秒。(??建立网络连接的开销占比这么大?后来判断估计是他那边的网络不行),但至少给了我一个思路方向:

        如果你的应用对oss的性能要求高,不要考虑它的api调用,一定是用sdk方式。

     这就回到原来的问题上,要么我用其他语言的sdk,要么我自己想办法在nodejs实现sdk的调用方式。最开始我以为javascript的sdk可以拿来用在nodejs上,结果被打脸,用了下根本没法跑。后来看了下技术给的java文档,这不就是aws的库吗?还是S3的标准,上chatgpt赶紧问问,果不其然原来aws官网就已经给出了详尽的演示代码,天某云你做啥子嘛,好歹直接在开放者文档上给个链接也行啊,害得老子转了一大圈用了你的api调用。

        这是aws的预签名链接Create a presigned URL for Amazon S3 using an AWS SDK - Amazon Simple Storage ServiceCreate a presigned URL for Amazon S3 using an AWS SDKicon-default.png?t=N7T8https://docs.aws.amazon.com/AmazonS3/latest/userguide/example_s3_Scenario_PresignedUrl_section.html

      然后copy了下拿到本地开发调试,半小时不到跑通搞定,爽!!!

       经过实测,从建立连接到生成一个预签名下载链接,平均不到50毫秒。这个速度完全满足了应用到需要。

  初始化client注意的点:

    *region字段要有,但值无所谓,按技术支持说的不用填,但不写的话,代码会报错。 

     *ak, sk到某某云的对象存储管理页面里去查。

  

   * endpoint的话,创建一个bucket,然后点击bucket查看详情,外网的和内网都在。

    其他的代码部分就直接参考aws的官网的就行了,为了方便小伙伴,我贴出自己的完整示例

     

const { S3Client, GetObjectCommand} = require("@aws-sdk/client-s3");
const {  getSignedUrl} = require("@aws-sdk/s3-request-presigner");

const client = new S3Client({
    region: '1111',
    credentials: {
      accessKeyId: '<ak>',
      secretAccessKey: '<sk>'
    },
    endpoint: 'https://xxxx.xxx.xx.cn',
    forcePathStyle: true,
    sslEnabled: true
  });

  const signurl = async () =>
  {
    const Key ='test.jpg'
    const Bucket = 'test-bucket';

    const command = new GetObjectCommand({ Bucket, Key });
    const url = await getSignedUrl(client, command, 
      { expiresIn: 3600 ,
        ResponseCacheControl: 'max-age=3600', // 设置HTTP缓存控制头
      });
    console.log(url);
  }

  signurl().catch(console.error);

   另外吐槽下管理权限这块,很容易让人搞晕,概念太多,用户,用户组,策略,委托,当时想和另外一个小伙伴一起使用,发现子用户总是无法看到主账户的资源,后来才知道关键点是这个。

    

  • 13
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值