aliyun-beta / aliyun-oss-ruby-sdk

Ruby SDK for Aliyun Open Simple Storage
Apache License 2.0
17 stars 3 forks source link

需要 internal 参数,以便上传删除等 Update 动作能走阿里云局域网 #5

Closed huacnlee closed 8 years ago

zlx commented 8 years ago

具体怎么使用?

huacnlee commented 8 years ago

域名后面加 -internal

https://github.com/huacnlee/carrierwave-aliyun/commit/b50792ffc77c6f2669bebc5600359bb0062f29da#diff-1941a04560821549ffb5f61d4b3750f1L108

zlx commented 8 years ago

这是仅限于上传/删除等 Update 操作还是全部操作?有相关参考文档吗?

huacnlee commented 8 years ago

主要是上传,这样能用内部网络带宽,速度更快,也不回占用外部带宽

在 2016年2月14日 星期日,22:06,Newell Zhu 写道:

这是仅限于上传/删除等 Update 操作还是全部操作?有相关参考文档吗?

— Reply to this email directly or view it on GitHub (https://github.com/aliyun-beta/aliyun-oss-ruby-sdk/issues/5#issuecomment-183895234).

zlx commented 8 years ago

可以直接配置 Host 为内网地址

zlx commented 8 years ago

另外可以使用直接上传到 Aliyun OSS: https://github.com/aliyun-beta/aliyun-oss-ruby-sdk#directly-post-file-to-aliyun-oss

huacnlee commented 8 years ago

那样不行,我试过了,如果是 private 的空间,会因为上传的时候 host 用于签名的信息是 internal,而下载却是 public 的地址而签名验证无法通过

zlx commented 8 years ago

签名的时候好像并不需要 Host 信息,你是如何实现签名的

huacnlee commented 8 years ago

没签名啊,你看 carrierwave-aliyun 里面都是直接调 aliyun-oss-ruby-sdk 的

zlx commented 8 years ago

那可以提供一下下载时候你返回的错误信息,我尝试重现一下

huacnlee commented 8 years ago
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>
The request signature we calculated does not match the signature you provided. Check your key and signing method.
</Message>
<RequestId>56C13766CA2A04895ADBE8AE</RequestId>
<HostId>dianjihe.oss-cn-beijing.aliyuncs.com</HostId>
<OSSAccessKeyId>Y6B9ypM8Pkb73QmY</OSSAccessKeyId>
<SignatureProvided>usRdjuk9n s1Q4M uMzSTEMsSww=</SignatureProvided>
<StringToSign>
GET 1455506803 /dianjihe/attachment/2016/4d3b1137da80d949a183404a437f6ca8.png
</StringToSign>
<StringToSignBytes>
47 45 54 0A 0A 0A 31 34 35 35 35 30 36 38 30 33 0A 2F 64 69 61 6E 6A 69 68 65 2F 61 74 74 61 63 68 6D 65 6E 74 2F 32 30 31 36 2F 34 64 33 62 31 31 33 37 64 61 38 30 64 39 34 39 61 31 38 33 34 30 34 61 34 33 37 66 36 63 61 38 2E 70 6E 67
</StringToSignBytes>
</Error>
zlx commented 8 years ago

你使用过的方法是: client#bucket_get_object ?

huacnlee commented 8 years ago

bucket_get_object_share_link

zlx commented 8 years ago

阿里云的控制台生成的 URL 可以使用吗?

zlx commented 8 years ago

@huacnlee 怎么样,问题解决了吗? 按照你的意思,上传走内部网络,下载走公网,不知道理论是否可行。 我现在没有环境,能否帮我测试一下,这种情况下阿里云控制台生成的下载链接能不能用?

huacnlee commented 8 years ago

先别管吧,现在没需求,等有需要的时候我来实现好了

zlx commented 8 years ago

:+1: