最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?Cloudinary實現(xiàn)圖像和視頻上傳詳解

 更新時間:2022年11月16日 10:48:29   作者:std7879  
這篇文章主要介紹了Python?Cloudinary實現(xiàn)圖像和視頻上傳功能,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧

Cloudinary提供了一個API,用于將圖像、視頻和任何其他類型的文件上傳到云端。上傳到Cloudinary的文件通過安全備份和修訂歷史記錄安全存儲在云中。Cloudinary的API允許從您的服務(wù)器、直接從訪問者的瀏覽器或移動應(yīng)用程序或通過遠程公共URL獲取安全上傳。

Cloudinary的Python SDK封裝了Cloudinari的上傳API并簡化了集成。Python方法可用于輕松地將Python圖像和視頻上傳到云端,Python視圖助手方法可用于直接從瀏覽器上傳到Cloudinary。

本頁介紹了使用Cloudinary上傳Python圖像和視頻的常見使用模式。

有關(guān)所有可用上傳選項和參數(shù)的詳細信息,請參閱媒體上傳文檔和上傳API參考的上傳方法。

注意:無論您的框架如何,Cloudinary提供的大部分功能都可以使用Python實現(xiàn)。如文檔中所述,某些功能僅適用于Django。

提示: Cloudinary的Upload widget提供了使用CloudinarySDK向應(yīng)用程序添加上傳功能的替代方案,從而無需開發(fā)內(nèi)部交互式上傳功能。上傳小部件是一個交互式、功能豐富、易于集成的用戶界面,使您能夠向網(wǎng)站添加Cloudinary上傳支持。只需幾行JavaScript代碼,就可以輕松地將小部件嵌入到web應(yīng)用程序中。有關(guān)詳細信息,請參閱上載小部件文檔。

服務(wù)器端上傳

您可以從Python代碼將圖像、視頻或任何其他原始文件上載到Cloudinary。上傳是通過HTTPS使用基于您帳戶的api_key和api_secret參數(shù)的安全協(xié)議完成的。

Python圖像上傳

以下方法將圖像上載到云:

def upload(file, **options)

例如,上載名為“my_image.jpg”的本地圖像文件:

cloudinary.uploader.upload("my_image.jpg")

要上載的文件可以指定為本地路徑、遠程HTTP或HTTPS URL、白名單存儲桶(S3或Google storage)URL、base64數(shù)據(jù)URI或FTP URL。有關(guān)詳細信息,請參見文件源選項。

有關(guān)所有可用上傳選項和參數(shù)的詳細信息,請參閱媒體上傳文檔和上傳API參考的上傳方法。

Python視頻上傳

你上傳視頻的方式與圖片完全相同。但是,上傳方法只支持上傳高達100 MB的文件。要上傳更大的視頻,請使用upload_large方法,該方法將大文件分塊上傳到云端。

upload_large方法具有與upload方法相同的簽名和選項,并添加了可選的chunk_size參數(shù)(默認為20 MB)。

以下示例上載Dog.mp4轉(zhuǎn)換為Cloudinary,并將其存儲在具有公共ID dog_closeup的雙層文件夾結(jié)構(gòu)中。它還執(zhí)行兩個急切的轉(zhuǎn)換,將視頻調(diào)整為正方形和小矩形。

cloudinary.uploader.upload_large("dog.mp4", 
  resource_type = "video",
  public_id = "myfolder/mysubfolder/dog_closeup",
  chunk_size = 6000000,
  eager = [
    { "width": 300, "height": 300, "crop": "pad", "audio_codec": "none"},
    { "width": 160, "height": 100, "crop": "crop", "gravity": "south",
        "audio_codec": "none"}],
  eager_async = true,
  eager_notification_url = "https://mysite.example.com/notify_endpoint")

上傳響應(yīng)

默認情況下,上傳是同步執(zhí)行的。一旦完成,上傳的圖像或視頻立即可用于轉(zhuǎn)換和交付。上傳調(diào)用返回一個哈希,其內(nèi)容如下:

{   
  u'bytes': 29802,
  u'created_at': u'2017-06-25T17:20:30Z',
  u'format': u'jpg',
  u'height': 282,
  u'public_id': u'hl22acprlomnycgiudor',
  u'resource_type': u'image',
  u'secure_url': u'https://res.cloudinary.com/demo/image/upload/v1571218039/hl22acprlomnycgiudor.jpg',
  u'signature': u'10594f028dbc23e920fd084f8482394798edbc68',
  u'type': u'upload',
  u'url': u'http://res.cloudinary.com/demo/image/upload/v1571218039/hl22acprlomnycgiudor.jpg',
  u'version': 1571218039,
  u'width': 292
}

注意:如果您需要上傳響應(yīng)來返回實際圖像而不是哈希,那么使用upload_resource方法(除了響應(yīng)之外,它與上傳方法相同)。

響應(yīng)包括用于訪問上傳媒體資產(chǎn)的HTTP和HTTPS URL,以及關(guān)于上傳資產(chǎn)的其他信息:公共ID、資源類型、寬度和高度、文件格式、文件大小(字節(jié))、用于驗證響應(yīng)的簽名等。

數(shù)據(jù)上傳選項

Cloudinary的Python庫支持從各種來源上傳文件。

您可以通過指定圖像文件的本地路徑來上載圖像。例如:

cloudinary.uploader.upload('/home/my_image.jpg')

您可以提供創(chuàng)建的IO對象:

cloudinary.uploader.upload(open('/tmp/image1.jpg', 'rb'))

如果您的圖像已經(jīng)在線公開,您可以指定其遠程HTTP URL,而不是上傳實際數(shù)據(jù)。在這種情況下,Cloudinary將為您從其遠程URL獲取圖像。此選項允許更快地遷移現(xiàn)有圖像。下面是一個示例:

cloudinary.uploader.upload('https://www.example.com/image.jpg')

如果您在AmazonS3桶中有現(xiàn)有的圖像,您可以將Cloudinary指向其S3 URL。注意-此選項需要快速手動設(shè)置。聯(lián)系我們,我們將指導(dǎo)您如何允許Cloudinary訪問您的相關(guān)S3存儲桶。

cloudinary.uploader.upload('s3://my-bucket/my-path/my-file.jpg')

注意:如果您正在Django中編寫一個應(yīng)用程序,其中用戶通過web表單上傳圖像,您可以傳遞Django's請求的參數(shù)。上傳方法的文件:

cloudinary.uploader.upload(request.FILES['file'])

Django表格和模型

如果您正在使用Django,可以使用Cloudinary的助手類將Cloudinari的上傳功能集成到表單和模型中。如下面的示例所示,您可以在models.py文件中定義模型類Photo。這個類有一個CloudinaryField類的圖像字段。

from django.db import models
from cloudinary.models import CloudinaryField
class Photo(models.Model):
image = CloudinaryField('image')

在表格中。py文件定義了一個PhotoForm類,該類有一個名為CloudinaryFileField類的image的表單字段(默認情況下)。

from django.forms import ModelForm      
from .models import Photo
class PhotoForm(ModelForm):
  class Meta:
      model = Photo

視圖。py文件定義了一個名為upload的視圖,該視圖顯示HTML上傳表單,并處理圖像文件的發(fā)布。這些圖像由CloudinaryFileField類從Django服務(wù)器上傳到Cloudinary。

from django import forms
from django.http import HttpResponse
from cloudinary.forms import cl_init_js_callbacks      
from .models import Photo
from .forms import PhotoForm
def upload(request):
  context = dict( backend_form = PhotoForm())
  if request.method == 'POST':
    form = PhotoForm(request.POST, request.FILES)
    context['posted'] = form.instance
    if form.is_valid():
        form.save()
  return render(request, 'upload.html', context)

以下HTML模板包括一個表單,用于將圖像上載到您的服務(wù)器以上載到Cloudinary:

{% load cloudinary %}
{% load url from future %}
{% block body %}
  <div id='backend_upload'>
    <form action="{% url "photo_album.views.upload" %}" method="post"
          enctype="multipart/form-data">
      {% csrf_token %}
      {{ backend_form }}
      <input type="submit" value="Upload">
    </form>
  </div>  
{% endblock %}

存儲了圖像ID后,現(xiàn)在可以使用cloudinary模板標簽嵌入圖像或圖像的轉(zhuǎn)換版本:

{% load cloudinary %}      
{% cloudinary photo.image format="jpg" width=120 height=80 crop="fill" %}

此外,您可以在初始化CloudinaryFileField類時分配標記、應(yīng)用轉(zhuǎn)換或指定任何Cloudinary的上傳選項。

from django.forms import ModelForm      
from cloudinary.forms import CloudinaryFileField      
from .models import Photo
class PhotoForm(ModelForm):
  class Meta:
    model = Photo
  image = CloudinaryFileField(
    attrs = { 'style': "margin-top: 30px" }, 
    options = { 
      'tags': "directly_uploaded",
      'crop': 'limit', 'width': 1000, 'height': 1000,
      'eager': [{ 'crop': 'fill', 'width': 150, 'height': 100 }]
    })

直接從瀏覽器上傳

上面顯示的上傳示例允許您的服務(wù)器端Python代碼將媒體資產(chǎn)上傳到Cloudinary。在此流程中,如果您有一個允許用戶上傳圖像或視頻的web表單,則媒體文件的數(shù)據(jù)會首先發(fā)送到您的服務(wù)器,然后上傳到Cloudinary。

一個更高效、更強大的選項是允許用戶將客戶端代碼中的圖像和視頻直接從瀏覽器上傳到Cloudinary,而不是通過服務(wù)器。這種方法允許更快的上傳和更好的用戶體驗。它還減少了服務(wù)器的負載,降低了Python應(yīng)用程序的復(fù)雜性。

您可以使用對上傳端點的簽名或未簽名調(diào)用直接從瀏覽器上傳文件,如使用表單上傳多個文件示例所示。

對于來自客戶端代碼的簽名上傳,必須在服務(wù)器端Python代碼中生成安全簽名。您可以使用api_sign_request方法生成SHA簽名:

cloudinary.utils.api_sign_request(params_to_sign, api_secret)

有關(guān)可用于簽名上傳的參數(shù)的完整列表,請參閱上傳API參考中的上傳方法。

到此這篇關(guān)于Python Cloudinary實現(xiàn)圖像和視頻上傳詳解的文章就介紹到這了,更多相關(guān)Python圖像和視頻上傳內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python讀取表格類型文件代碼實例

    Python讀取表格類型文件代碼實例

    這篇文章主要介紹了Python讀取表格類型文件代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • 解決Python下json.loads()中文字符出錯的問題

    解決Python下json.loads()中文字符出錯的問題

    今天小編就為大家分享一篇解決Python下json.loads()中文字符出錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 詳解Django中六個常用的自定義裝飾器

    詳解Django中六個常用的自定義裝飾器

    這篇文章主要介紹了詳解Django中六個常用的自定義裝飾器,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Python+Opencv實現(xiàn)物體尺寸測量的方法詳解

    Python+Opencv實現(xiàn)物體尺寸測量的方法詳解

    這篇文章主要為大家詳細介紹了Python+Opencv如何實現(xiàn)物體尺寸測量的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-09-09
  • python pandas dataframe多列篩選方式

    python pandas dataframe多列篩選方式

    這篇文章主要介紹了python pandas dataframe多列篩選方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python+OpenCV實現(xiàn)圖像拼接

    python+OpenCV實現(xiàn)圖像拼接

    這篇文章主要為大家詳細介紹了python+OpenCV實現(xiàn)圖像拼接,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Django生成數(shù)據(jù)庫及添加用戶報錯解決方案

    Django生成數(shù)據(jù)庫及添加用戶報錯解決方案

    這篇文章主要介紹了Django生成數(shù)據(jù)庫及添加用戶報錯解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • Python設(shè)計模式中的備忘錄模式

    Python設(shè)計模式中的備忘錄模式

    這篇文章主要為大家詳細介紹了Python設(shè)計模式中的備忘錄模式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Python?Enum枚舉類的定義及使用場景最佳實踐

    Python?Enum枚舉類的定義及使用場景最佳實踐

    枚舉(Enum)是一種有助于提高代碼可讀性和可維護性的數(shù)據(jù)類型,允許我們?yōu)橐唤M相關(guān)的常量賦予有意義的名字,在Python中,枚舉類(Enum)提供了一種簡潔而強大的方式來定義和使用枚舉
    2023-11-11
  • python將xml xsl文件生成html文件存儲示例講解

    python將xml xsl文件生成html文件存儲示例講解

    這篇文章主要介紹了python將xml、xsl文件轉(zhuǎn)成html文件存儲方法,大家參考使用吧
    2013-12-12

最新評論

得荣县| 罗江县| 边坝县| 迁西县| 新邵县| 古丈县| 雅安市| 鲁山县| 怀远县| 独山县| 民和| 九江市| 贵州省| 拉孜县| 鹿泉市| 抚顺市| 淮安市| 洛阳市| 万载县| 盱眙县| 石嘴山市| 芦溪县| 葵青区| 浮梁县| 龙南县| 常山县| 西充县| 鄂温| 泗阳县| 新竹市| 望江县| 南部县| 双辽市| 梁河县| 九江市| 商水县| 木兰县| 张掖市| 闻喜县| 孟连| 南涧|