[英]How to download files using cloudinary API?
我試圖制作一個將.txt
文件與 Cloudinary 同步的程序。 目的是使用 Heroku 運行代碼並在測功機重新啟動時下載斷言。 問題是他們的網站上似乎沒有下載 function (很可能是我不知道如何閱讀)。
我認為fetch
function 可能是我正在尋找的,但它似乎也用於上傳。 我也知道有一些 function(可能不是來自 Cloudinary)可以使用鏈接下載。 這個解決方案也可以,但是我需要找到一種方法來獲取鏈接(但我很確定它會在您上傳時return
),但問題是我的程序應該首先同步,這意味着我無法將鏈接作為返回值。 我還想知道是否有辦法刪除文件(如果它們具有相同的名稱,它們不會自動替換)。
我做了一個小樣本,可以上傳文件,效果很好:
import cloudinary
import os
from cloudinary import uploader
from signal import signal, SIGINT, SIGTERM
import time
cloudinary.config(
cloud_name = 'not_real',
api_key = '696969696996',
api_secret = 'helloWorld'
)
def downloader():
#something here...
pass
downloader()
def handler(sig, frame):
print(cloudinary.uploader.upload("TEST.txt", resource_type = "raw", public_id = "TEST"))
print("PID: ", os.getpid())
signal(SIGTERM, handler) # to understand when the dyno is getting killed
while True:
print("Doing nothing...")
time.sleep(3600)
再次(簡而言之)我想要這樣做:
任何幫助將非常感激。
upd:似乎指向 Cloudinaty .txt
文件的鏈接打開了一個只有文本的空網頁,所以我想我可以
r = requests.get("https://res.cloudinary.com/name/raw/upload/v1589215899/TEST.txt")
print(r.text)
,但我想知道是否有更好的解決方案。
raw
上傳到 Cloudinary 后,會返回一個響應,其中包括以下內容:
{
"public_id": "sample.txt",
"version": 1371928603,
"signature": "9088291a2c12202767cfa7c5e874afee72be78cd",
"resource_type": "raw",
"created_at": "2017-06-22T19:16:43Z",
"tags": [],
"bytes": 6144,
"type": "upload",
"etag": "107bf134b5afd11cc7544d60108d87b",
"url": "http://res.cloudinary.com/demo/raw/upload/v1371928603/sample.txt",
"secure_url":
"https://res.cloudinary.com/demo/raw/upload/v1371928603/sample.txt"
"original_filename": "myoriginaltextfile"
}
Cloudinary 建議存儲public_id
、 resource_type
、 type
和version
(可以省略),以便稍后重新生成 Cloudinary URL。 public_id
是資產的唯一標識符。 resource_type
標識它是什么資源,例如image
、 video
或raw
。 type
是該資產的交付類型,例如upload
(表示公共)、 private
和已authenticated
等等。 version
是上傳資產的時間戳。 話雖如此,一旦您擁有這些資產詳細信息,您就可以通過直接構建 URL 或生成圖像或視頻標簽來生成 Cloudinary URL。 圖像/視頻標簽對原始文件沒有幫助,因此直接 URL 構建將是 go 的方式。 Cloudinary Python SDK(以及它們的任何其他 SDK)具有類似的功能,但 Python 可以在這里找到。
cloudinary.utils.cloudinary_url("sample.txt", resource_type = "raw")
# Output: "https://res.cloudinary.com/demo/raw/upload/sample.txt"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.