开发者社区> 问答> 正文

URL形式下如何进行PUT操作

我在帮助文档中看到支持在URL中包含签名,并且PUT和GET请求都支持在URL中签名。GET请求很好理解,把URL输入到地址栏或者是链接就可以访问OSS中的数据,那么PUT请求如何使用,如何用URL的方式向OSS中上传文件?

展开
收起
mamu2100 2012-06-21 11:10:13 13024 0
3 条回答
写回答
取消 提交回答
  • ReURL形式下如何进行PUT操作
    一个签名URL的python 实现例子。
            '''
            Test put object with Signed URL
            '''
            host = get_host()
            method = "PUT"
            bucket = "test"   time.strftime("%Y-%b-%d%H-%M-%S").lower()
            object = "test_object"
            url = "/"   bucket   "/"   object
            resource = "/"   bucket   "/"   object
            content_type = "text/plain"
            #1. create a bucket
            res = self.oss.put_bucket(bucket)
            self.assertEqual(res.status, 200)

            #2.sign a URL with put method
            headers = {}
            headers["Content-Type"] = content_type
            headers["x-oss-meta-test"] = content_type
            timeout = 60
            url_with_auth = self.oss.sign_url_auth_with_expire_time(method, url, headers, resource, timeout)

            #3.get a normal HTTP connect and send content to object
            conn = get_conn_by_host(host)
            conn.putrequest(method, url_with_auth)
            filesize = os.path.getsize(self.put_file)
            conn.putheader("Content-Length", str(filesize))
            conn.putheader("Content-Type", content_type)
            conn.putheader("Content-Language", content_type)
            conn.putheader("x-oss-meta-test", content_type)
            conn.endheaders()
            original_content = ""
            fp = open(self.put_file, "rb")
            l = fp.read(self.oss.SendBufferSize)
            while len(l) > 0:
                conn.send(l)
                l = fp.read(self.oss.SendBufferSize)
                original_content  = l
            res = conn.getresponse()
    2012-07-12 14:29:55
    赞同 展开评论 打赏
  • ReURL形式下如何进行PUT操作
    科普下:
    浏览器是不支持put操作的。
    2012-07-12 10:18:22
    赞同 展开评论 打赏
  • ReURL形式下如何进行PUT操作
    如果您使用的是Java SDK,可以使用OSSClient#generatePresignedUrl方法生成一个签名了的URL,然后使用HTTP访问的库上传Object。生成URL的参数可以参见这个方法的帮助和GeneratePresignedUrlRequest类的说明。

    如果您没有使用Java SDK。可以参考OSS的《API手册》关于在URL中包含签名一节,动手创建URL
    2012-07-11 22:23:07
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载