cloudflare的免费存储还是很香的,所以想试试怎么通过接口的方式使用,但是最后发现不能在web端使用,只能通过后端来访问,而且R2用的是亚马逊的s3接口标准,文档:https://developers.cloudflare.com/r2/examples/aws/
使用的时候,选择自己的后端服务语言,如果你是python,可以使用boto3这个sdk,如果是别的,在文档里都有相关说明
选择对应的sdk接口,然后使用一个实例访问。
需要创建一个api密钥:
下面三个是必须要记下的,只会显示这一次:
然后使用官方的demo,替换里面的密钥为刚才生成的:
如果你在前端页面中使用js的sdk访问,会出现400的响应:
但是如果你放在node环境中就可以正常使用:
Preflight response is not successful. Status code: 400
如果是python端,也可以使用demo:
import os import boto3 from botocore.client import Config def init_s3(end_point, access_key, secret_key, region_name='auto'): return boto3.client( 's3', aws_access_key_id=access_key, aws_secret_access_key=secret_key, use_ssl=True, region_name=region_name, endpoint_url=end_point, config=Config(s3={"addressing\_style": "path"}) ) s3_endpoint = "xxxxxxxxxxxxxx" # 换成你自己的 s3_access_key = "xxxxxxxxxxxxxx" # 换成你自己的 s3_secret_key = "xxxxxxxxxxxxxx" # 换成你自己的 region_name = "auto" s3 = init_s3(s3_endpoint, s3_access_key, s3_secret_key, region_name) buckets = s3.list_buckets()['Buckets'] print(buckets)可以得到响应: