游客gwycgbqdnx4pi_个人页

游客gwycgbqdnx4pi
0
1
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息
正在加载, 请稍后...
暂无更多信息
  • 回答了问题 2018-06-12

    python上传网络流

    详细解答可以参考官方帮助文档在OSS中,操作的基本数据单元是文件(Object)。OSS Python SDK提供了丰富的文件上传方式: 简单上传:文件最大不能超过5GB。追加上传:文件最大不能超过5GB。断点续传上传:支持并发、断点续传、自定义分片大小。大文件上传推荐使用断点续传。最大不能超过48.8TB。分片上传:当文件较大时,可以使用分片上传,最大不能超过48.8TB。 说明:各种上传方式的适用场景请参见开发指南中的上传文件。 上传过程中,您还可以通过进度条功能查看上传进度。上传完成后,您还可以进行上传回调。 简单上传通过bucket.put_object方法上传文件。上传方法支持多种类型的输入源,输入源有如下几种类型: 类型 上传方式 字符串 直接上传 Bytes 直接上传 Unicode 自动转换为UTF-8编码的Bytes进行上传 本地文件 文件对象(File Object),必须以二进制方式打开(如“rb”模式) 网络流 可迭代对象(Iterable),以Chunked Encoding的方式上传 上传字符串以下代码用于上传字符串: # -*- coding: utf-8 -*-import oss2# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。auth = oss2.Auth('', '')# Endpoint以杭州为例,其它Region请按实际情况填写。bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '')# 返回值。result = bucket.put_object('', 'content of object')# HTTP返回码。print('http status: {0}'.format(result.status))# 请求ID。请求ID是请求的唯一标识,强烈建议在程序日志中添加此参数。print('request_id: {0}'.format(result.request_id))# ETag是put_object方法返回值特有的属性。print('ETag: {0}'.format(result.etag))# HTTP响应头部。print('date: {0}'.format(result.headers['date'])) 上传Bytes以下代码用于上传Bytes: # -*- coding: utf-8 -*-import oss2# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。auth = oss2.Auth('', '')# Endpoint以杭州为例,其它Region请按实际情况填写。bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '')bucket.put_object('', b'content of object') 上传Unicode以下代码用于上传Unicode: # -*- coding: utf-8 -*-import oss2# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。auth = oss2.Auth('', '')# Endpoint以杭州为例,其它Region请按实际情况填写。bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '')bucket.put_object('', u'content of object') 上传本地文件以下代码用于上传本地文件: # -*- coding: utf-8 -*-import oss2# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。auth = oss2.Auth('', '')# Endpoint以杭州为例,其它Region请按实际情况填写。bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '')# 必须以二进制的方式打开文件,因为需要知道文件包含的字节数。with open('', 'rb') as fileobj: # Seek方法用于指定从第1000个字节位置开始读写。上传时会从您指定的第1000个字节位置开始上传,直到文件结束。 fileobj.seek(1000, os.SEEK_SET) # Tell方法用于返回当前位置。 current = fileobj.tell() bucket.put_object('', fileobj) Python SDK还提供了一个更加便捷的方法用于上传本地文件: bucket.put_object_from_file('', '') 上传网络流以下代码用于上传网络流: # -*- coding: utf-8 -*-import oss2import requests# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。auth = oss2.Auth('', '')# Endpoint以杭州为例,其它Region请按实际情况填写。bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '')# requests.get返回的是一个可迭代对象(Iterable),此时Python SDK会通过Chunked Encoding方式上传。input = requests.get('http://www.aliyun.com')bucket.put_object('', input) 追加上传以下代码用于追加上传文件: # -*- coding: utf-8 -*-import oss2# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。auth = oss2.Auth('', '')# Endpoint以杭州为例,其它Region请按实际情况填写。bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '')# 设置首次上传的追加位置(Position参数)为0。result = bucket.append_object('', 0, 'content of first append')# 如果不是首次上传,可以通过bucket.head_object方法或上次追加返回值的next_position属性,得到追加位置。bucket.append_object('', result.next_position, 'content of second append') 如果文件已经存在,如下两种情况将会抛出异常: 不是可追加文件,则抛出ObjectNotAppendable异常。是可追加文件,但设置的追加位置和文件当前长度不等,则抛出PositionNotEqualToLength异常。 断点续传上传断点续传上传将要上传的文件分成若干个分片(Part)分别上传,所有分片都上传完成后,将所有分片合并成完整的文件,完成整个文件的上传。 您可以通过oss2.resumable_upload方法断点续传上传指定文件,该方法包含以下参数: 参数 描述 是否必需 默认值 bucket 存储空间名称 是 无 key 文件名称 是 无 filename 待上传的本地文件名称 是 无 store 指定保存断点信息的目录 否 HOME目录下建立的.py-oss-upload目录 headers HTTP头部 否 无 multipart_threshold 文件长度大于该值时,则用分片上传 否 10MB part_size 分片大小 否 自动计算 progress_callback 上传进度回调函数 否 无 num_threads 并发上传的线程数 否 1 以下代码用于断点续传上传: # -*- coding: utf-8 -*-import oss2# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。auth = oss2.Auth('', '')# Endpoint以杭州为例,其它Region请按实际情况填写。bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '')# 当文件长度大于或等于可选参数multipart_threshold(默认值为10MB)时,会使用分片上传。如未使用参数store指定目录,则会在HOME目录下建立.py-oss-upload目录来保存断点信息。oss2.resumable_upload(bucket, '', '') Python SDK 2.1.0以上版本支持设置可选参数进行断点续传上传,代码如下: # 如使用store指定了目录,则保存断点信息在指定目录中。如使用num_threads设置上传并发数,请将oss2.defaults.connection_pool_size设成大于或等于线程数。默认线程数为1。oss2.resumable_upload(bucket, '', '', store=oss2.ResumableStore(root='/tmp'), multipart_threshold=100*1024, part_size=100*1024, num_threads=4) 断点续传详情请参见开发指南中的断点续传。 分片上传分片上传(Multipart Upload)分为以下三个步骤: 初始化(bucket.init_multipart_upload):获得Upload ID。上传分片(bucket.upload_part):上传分片数据。这一步可以并发进行。完成上传(bucket.complete_multipart_upload):所有分片上传完成后,合并分片,生成OSS文件。 以下代码用于分片上传文件: # -*- coding: utf-8 -*-import osfrom oss2 import SizedFileAdapter, determine_part_sizefrom oss2.models import PartInfoimport oss2# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。auth = oss2.Auth('', '')# Endpoint以杭州为例,其它Region请按实际情况填写。bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '')key = ''filename = ''total_size = os.path.getsize(filename)# determine_part_size方法用来确定分片大小。part_size = determine_part_size(total_size, preferred_size=100 * 1024)# 初始化分片。upload_id = bucket.init_multipart_upload(key).upload_idparts = []# 逐个上传分片。with open(filename, 'rb') as fileobj: part_number = 1 offset = 0 while offset total_size: num_to_upload = min(part_size, total_size - offset) # SizedFileAdapter(fileobj, size)方法会生成一个新的文件对象,重新计算起始追加位置。 result = bucket.upload_part(key, upload_id, part_number, SizedFileAdapter(fileobj, num_to_upload)) parts.append(PartInfo(part_number, result.etag)) offset += num_to_upload part_number += 1# 完成分片上传。bucket.complete_multipart_upload(key, upload_id, parts)# 验证分片上传。with open(filename, 'rb') as fileobj: assert bucket.get_object(key).read() == fileobj.read() 进度条进度条用于指示上传或下载的进度。下面的代码以bucket.put_object方法为例,介绍如何使用进度条。 # -*- coding: utf-8 -*-from __future__ import print_functionimport os, sysimport oss2# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。auth = oss2.Auth('', '')# Endpoint以杭州为例,其它Region请按实际情况填写。bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '')# 当无法确定待上传的数据长度时,total_bytes的值为None。def percentage(consumed_bytes, total_bytes): if total_bytes: rate = int(100 * (float(consumed_bytes) / float(total_bytes))) print('\r{0}% '.format(rate), end='') sys.stdout.flush()# progress_callback为可选参数,用于实现进度条功能。bucket.put_object('', 'a'*1024*1024, progress_callback=percentage) 进度条的完整示例代码请参见GitHub。 上传回调以下代码用于上传回调: # -*- coding: utf-8 -*-import jsonimport base64import osimport oss2# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。auth = oss2.Auth('', '')# Endpoint以杭州为例,其它Region请按实际情况填写。bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '')# 准备回调参数。callback_dict = {}# 设置回调请求的服务器地址,如http://oss-demo.aliyuncs.com:23450或http://127.0.0.1:9090。callback_dict['callbackUrl'] = 'http://oss-demo.aliyuncs.com:23450'# 设置回调请求消息头中Host的值, 如oss-cn-hangzhou.aliyuncs.com。callback_dict['callbackHost'] = 'oss-cn-hangzhou.aliyuncs.com'# 设置发起回调时请求body的值。callback_dict['callbackBody'] = 'filename=${object}&size=${size}&mimeType=${mimeType}'# 设置发起回调请求的Content-Type。callback_dict['callbackBodyType'] = 'application/x-www-form-urlencoded'# 回调参数是Json格式,并且需要Base64编码。callback_param = json.dumps(callback_dict).strip()base64_callback_body = base64.b64encode(callback_param)# 回调参数编码后放在Header中发送给OSS。headers = {'x-oss-callback': base64_callback_body}# 上传并回调。result = bucket.put_object('', 'a'*1024*1024, headers) put_object、put_object_from_file、complete_multipart_upload支持上传回调功能。上传回调的详细说明请参见API参考中的上传回调。上传回调的完整示例代码请参见GitHub。
    踩1 评论0
  • 回答了问题 2018-05-26

    导入数据库出错

    详细解答可以参考官方帮助文档 第一步:首先需要与网站开发商或网站制作人员确认网站使用的数据库的类型;第二步:常用数据库类型有以下3种,按照对应的帮助导入数据库的表结构和数据;1、MSSQL数据库,请参看【MSSQL2008导入数据教程】;2、MYSQL数据库,请参看【MySQL数据库导入教程】;3、Access数据库,只需要和网页文件一起通过FTP方式上传到空间即可。如问题还未解决,请联系售后技术支持。 
    踩1 评论0
  • 回答了问题 2018-05-11

    range在哪儿开

    详细解答可以参考官方帮助文档 功能介绍 Range回源是指客户端通知源站服务器只返回部分内容,以及部分内容的范围。这对于较大文件的分发加速有很大帮助。开启Range回源功能,可以减少回源流量消耗,并且提升资源响应时间。 需要源站支持range请求,即对于http请求头中包含 Range 字段,源站能够响应正确的206文件分片。 Range回源 具体描述 示例 开启 该参数可以请求回源站。此时源站需要依据 Range 的参数,响应文件的字节范围。同时CDN节点也会向客户端响应相应字节范围的内容。 客户端向CDN请求中含有range:0-100,则源站端收到的请求中也会含有range:0-100这个参数。并且源站响应给CDN节点,然后CDN节点响应给客户端的就是范围是0-100的一共101个字节内容。 关闭 CDN上层节点会向源站请求全部的文件,并且由于客户端会在收到Range定义的字节后自动断开http链接,请求的文件没有缓存到CDN节点上。最终导致缓存的命中率较低,并且回源流量较大。 客户端向CDN请求中含有range:0-100,则server端收到的请求中没有range这个参数。源站响应给CDN节点完整文件,但是CDN节点响应给客户端的就是101个字节,但是由于连接断开了,会导致该文件没有缓存到CDN节点上。 说明 需要源站支持range请求,即对于http请求头中包含 Range 字段,源站能够响应正确的206文件分片。 操作步骤 Range回源是可选配置项,默认不开启。您可以变更配置,开启Range回源。 进入CDN域名管理页面,选择域名,单击管理。 在视频相关 > Range回源,选择修改配置。 选择 开启、关闭或强制Range回源功能。 说明 您指定range回源为强制后,任何分片请求都会强制分片回源。 您还可以参考Range回源的API文档,使用该功能。
    踩1 评论0
  • 提交了问题 2018-05-03

    com域名办理赎回

  • 提交了问题 2018-02-02

    1 获取AccessKeyId和AccessKeySecret

  • 提交了问题 2017-12-30

    用了CDN访问变慢了

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息