騰訊云文件上傳
騰訊云圖片上傳
`安裝相應包:
pip install -U cos-python-sdk-v5
在騰訊云上申請密鑰

創建自己的存儲桶

PUT Object
class Upload(APIView):
def post(self,request):
file=request.FILES.get('file')
print(file.name)
from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
secret_id = 'sectet_id' # 替換為用戶的 secretId
secret_key = 'sectet_key' # 替換為用戶的 secretKey
region = 'ap-nanjing' # 替換為自己的 Region
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key)
client = CosS3Client(config)
response = client.put_object(
Bucket='替換為自己的Bucket', # Bucket由bucketname-appid組成
Body=file, # 文件
Key=file.name, #文件名
StorageClass='STANDARD',
ContentType='image; charset=utf-8'
)
print(response['ETag'])
return Response({'code':200})
請求頭:
| 名稱 | 描述 | 類型 | 是否必選 |
|---|---|---|---|
| Cache-Control | RFC 2616 中定義的緩存指令,將作為對象元數據保存 | string | 否 |
| Content-Disposition | RFC 2616 中定義的文件名稱,將作為對象元數據保存 | string | 否 |
| Content-Encoding | RFC 2616 中定義的編碼格式,將作為對象元數據保存 | string | 否 |
| Content-Type | RFC 2616 中定義的 HTTP 請求內容類型(MIME),此頭部用于描述待上傳對象的內容類型,將作為對象元數據保存。 例如text/html或image/jpeg |
string | 是 |
| Expires | RFC 2616 中定義的緩存失效時間,將作為對象元數據保存 | string | 否 |
| Transfer-Encoding | 如果希望在上傳時分塊傳輸,則指定 Transfer-Encoding: chunked 請求頭部,此時請求體遵循 RFC 2616 中定義的傳輸編碼格式,且不能指定 Content-Length 請求頭部 | string | 否 |
| x-cos-meta-* | 包括用戶自定義元數據頭部后綴和用戶自定義元數據信息,將作為對象元數據保存,大小限制為2KB 注意:用戶自定義元數據信息支持下劃線(_),但用戶自定義元數據頭部后綴不支持下劃線,僅支持減號(-) | string | 否 |
| x-cos-storage-class | 對象存儲類型。枚舉值請參見 存儲類型 文檔,例如 MAZ_STANDARD,MAZ_STANDARD_IA,STANDARD_IA,ARCHIVE,DEEP_ARCHIVE。默認值:STANDARD | Enum | 否 |
| x-cos-traffic-limit | 針對本次上傳進行流量控制的限速值,必須為數字,單位默認為 bit/s。限速值設置范圍為819200 - 838860800,即100KB/s - 100MB/s,如果超出該范圍將返回400錯誤 |
本地文件上傳
from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
secret_id = '自己id' # 替換為用戶的 secretId
secret_key = '自己key' # 替換為用戶的 secretKey
region = 'ap-nanjing' # 替換為用戶的 Region
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key)
client = CosS3Client(config)
response = client.upload_file(
Bucket='替換自己的Bucket',
LocalFilePath='code.png', # 本地文件的路徑
Key='p1.jpg', # 上傳到桶之后想要的文件名
)
print(response['ETag'])
`
浙公網安備 33010602011771號