क्लाउडिनरी स्वाक्षरींवर प्रभुत्व मिळवणे: अवैध स्वाक्षरी त्रुटी डीबग करणे
फ्रंटएंडवरून थेट क्लाउडिनरीवर प्रतिमा अपलोड केल्याने वेब अनुप्रयोग लक्षणीयरीत्या सुव्यवस्थित होऊ शकतात, परंतु सुरक्षित API विनंत्या सेट करणे अनेकदा अनन्य आव्हाने प्रस्तुत करते. अलीकडे, मध्ये स्वाक्षरी-आधारित दृष्टीकोन वापरताना मला एक समस्या आली JavaScript आणि जा, जेथे क्लाउडिनरी "अवैध स्वाक्षरी" त्रुटी परत करत आहे. 😫
क्लाउडिनरीच्या अपेक्षित स्वाक्षरीशी जुळणारा सुरक्षित हॅश व्युत्पन्न करण्याचा प्रयत्न करताना Cloudinary's API सह काम करणाऱ्या विकासकांसाठी ही त्रुटी सामान्य आहे. विशेषत: सुरक्षितता आवश्यकतांसह, योग्यरित्या कसे तयार करायचे आणि स्वाक्षरी कशी जुळवायची हे समजून घेणे अवघड असू शकते, विशेषत: जर तुम्हाला हॅशिंग तंत्र माहित नसेल.
या लेखात, मी तुम्हाला या विशिष्ट स्वाक्षरी त्रुटी डीबग करण्याच्या प्रक्रियेत मार्गदर्शन करेन, दोन्ही फ्रंटएंड कव्हर करून JavaScript आणि बॅकएंड इन जा. तुमची स्वाक्षरी निर्मिती क्लाउडिनरीच्या वैशिष्ट्यांशी जुळते याची खात्री करण्यासाठी आवश्यक असलेल्या मुख्य पायऱ्या मी स्पष्ट करेन.
उदाहरणे आणि सामान्य त्रुटींसह, आम्ही कार्यात्मक प्रतिमा अपलोड समाधान तयार करण्यासाठी कार्य करू. चला आत जाऊ आणि नितळ प्रतिमा अपलोडसाठी त्या स्वाक्षऱ्या सत्यापित करा! 🚀
आज्ञा | वापर आणि वर्णनाचे उदाहरण |
---|---|
hmac.New(sha1.New, []byte(secret)) | हॅशिंग अल्गोरिदम म्हणून SHA-1 सह नवीन HMAC (हॅश-आधारित संदेश प्रमाणीकरण कोड) तयार करते आणि की म्हणून गुप्त वापरते. Cloudinary द्वारे आवश्यक सुरक्षित स्वाक्षरी तयार करण्यासाठी हे महत्त्वपूर्ण आहे, स्वाक्षरी केलेली स्ट्रिंग सुरक्षितपणे प्रमाणीकृत आहे याची खात्री करून. |
mac.Write([]byte(stringToSign)) | बाइट-एनकोड केलेली स्ट्रिंग स्ट्रिंग लिहितेToSign HMAC उदाहरणामध्ये. ही पायरी HMAC अल्गोरिदममध्ये डेटावर प्रक्रिया करते, टाइमस्टॅम्प आणि इतर पॅरामीटर्स सारख्या इनपुट मूल्यांवर आधारित स्वाक्षरीची गणना करण्यास अनुमती देते. |
hex.EncodeToString(mac.Sum(nil)) | हेक्साडेसिमल स्ट्रिंगमध्ये HMAC डायजेस्ट (संगणित हॅश) चे परिणाम एन्कोड करते, जी अंतिम स्वाक्षरी असते. हे स्वरूप Cloudinary द्वारे आवश्यक आहे, कारण ते स्वाक्षरीचे अंदाजे आणि URL-सुरक्षित प्रतिनिधित्व प्रदान करते. |
sort.Strings(keys) | stringToSign मध्ये सुसंगत क्रम सुनिश्चित करण्यासाठी नकाशा की वर्णानुक्रमे क्रमवारी लावते. क्लाउडिनरी स्वाक्षरी व्युत्पन्न करताना पॅरामीटर्स वर्णक्रमानुसार असण्याची अपेक्षा करते, त्यामुळे ही आज्ञा योग्य क्रमाची खात्री देते. |
strconv.FormatInt(time.Now().Unix(), 10) | वर्तमान युनिक्स टाइमस्टॅम्प (सेकंदांमध्ये) स्ट्रिंगमध्ये रूपांतरित करते. हा टाइमस्टॅम्प स्वाक्षरी निर्मितीसाठी एक पॅरामीटर म्हणून कार्य करतो आणि विशिष्ट कालावधीत विनंती प्रमाणित करण्यात मदत करतो, सुरक्षा वाढवतो. |
new FormData() | JavaScript मध्ये एक नवीन FormData ऑब्जेक्ट तयार करते, की-व्हॅल्यू जोड्यांचे संचयन आणि हस्तांतरण करण्यास अनुमती देते, जे क्लाउडिनरीच्या अपलोड API वर मल्टीपार्ट फॉर्म डेटा (जसे फाइल्स) पाठवण्यासाठी आदर्श आहे. |
axios.post() | प्रदान केलेल्या डेटासह HTTP POST विनंती करते, ज्यामध्ये फाइल, स्वाक्षरी आणि टाइमस्टॅम्प समाविष्ट आहे. ही विनंती Cloudinary वर फाइल आणि मेटाडेटा अपलोड करते, विनंती प्रमाणित करण्यासाठी स्वाक्षरी वापरून. |
http.HandleFunc("/generate-signature", handler) | Go मध्ये रूट हँडलरची नोंदणी करते, URL पाथ/generate-signature ला getSignatureHandler फंक्शनला बंधनकारक करते. हा मार्ग फ्रंटएंडला प्रत्येक अपलोड विनंतीसाठी वैध स्वाक्षरी आणि टाइमस्टॅम्प आणण्याची परवानगी देतो. |
http.Error(w, "message", statusCode) | सानुकूल संदेश आणि HTTP स्थिती कोडसह त्रुटी प्रतिसाद पाठवते. येथे, स्वाक्षरी निर्मिती अयशस्वी झाल्यास प्रतिसाद पाठविण्यासाठी वापरला जातो, अपलोड प्रक्रियेदरम्यान क्लायंटला त्रुटी योग्यरित्या हाताळण्यास मदत करते. |
fmt.Fprintf(w, "{\\"signature\\":...}") | व्युत्पन्न स्वाक्षरी आणि टाइमस्टॅम्प एम्बेड करून क्लायंटला JSON प्रतिसाद फॉरमॅट आणि लिहितो. हा प्रतिसाद फ्रंटएंडला क्लाउडिनरी अपलोड विनंतीसाठी या मूल्यांमध्ये प्रवेश करण्यास आणि वापरण्यास अनुमती देतो. |
JavaScript आणि Go सह क्लाउडिनरी स्वाक्षरी त्रुटींवर मात करणे
या सोल्यूशनमध्ये, निराकरण करणे हा मूळ उद्देश आहे "अवैध स्वाक्षरी" Cloudinary वर प्रतिमा अपलोड करताना त्रुटी. क्लाउडिनरी द्वारे अपेक्षित असलेली स्वाक्षरी आणि तुमच्या बॅकएंडद्वारे तयार केलेली स्वाक्षरी यांच्यात जुळत नसताना ही त्रुटी सामान्यतः उद्भवते. येथे, आमचा दृष्टीकोन स्वाक्षरी तयार करण्यासाठी Go मध्ये लिहिलेली बॅकएंड स्क्रिप्ट वापरतो, तर JavaScript मधील फ्रंटएंड Axios वापरून फाइल अपलोड व्यवस्थापित करते. आम्ही एक अद्वितीय वापरून स्वाक्षरी तयार करतो HMAC हॅश, जे टाइमस्टॅम्प आणि इतर पॅरामीटर्स (या प्रकरणात, सुरुवातीला फक्त टाइमस्टॅम्प) एका गुप्त कीसह एकत्र करते. ही स्वाक्षरी नंतर क्लाउडिनरीला फाइल अपलोड विनंतीसह पास केली जाते, अपलोड प्रमाणीकृत करण्यात मदत करते.
गो बॅकएंडवर, आम्ही हँडलर फंक्शन परिभाषित करून प्रारंभ करतो जे व्युत्पन्न स्वाक्षरी आणि टाइमस्टॅम्प परत करते. जेव्हा फ्रंटएंड स्वाक्षरीची विनंती करतो, तेव्हा हँडलर फंक्शन “generateSignature” नावाच्या युटिलिटी फंक्शनला कॉल करते जे HMAC स्वाक्षरी तयार करते. "sort.Strings" सारख्या प्रमुख कमांड्स हे सुनिश्चित करतात की पॅरामीटर्स वर्णानुक्रमानुसार क्रमवारी लावल्या जातात, कारण क्लाउडिनरीला क्रम सुसंगत असणे आवश्यक आहे. दुसरा महत्त्वाचा भाग म्हणजे “strconv.FormatInt” सह टाइमस्टॅम्पला स्ट्रिंग फॉरमॅटमध्ये रूपांतरित करणे, जे फ्रंटएंडला फॉर्म डेटामध्ये अखंडपणे वापरण्याची परवानगी देते. अशा प्रकारे, जरी आम्ही भविष्यात पॅरामीटर्स बदलले तरीही, बॅकएंड फ्रंटएंड विनंती सुधारित न करता अद्ययावत सूची गतिशीलपणे हाताळू शकते.
फ्रंटएंडवर, आम्ही फाइल अपलोड सुरू करण्यासाठी JavaScript आणि Axios वापरतो. येथे, एपीआय की, टाइमस्टॅम्प, स्वाक्षरी आणि फाइल स्वतःसह अपलोड विनंतीचा प्रत्येक भाग संचयित करण्यासाठी फ्रंटएंड स्क्रिप्ट एक FormData ऑब्जेक्ट तयार करते. बॅकएंड हँडलरने स्वाक्षरीसह प्रतिसाद दिल्यानंतर, Axios Cloudinary च्या इमेज अपलोड एंडपॉईंटला POST विनंती पाठवते. इथेच सगळे तुकडे एकत्र येतात; स्वाक्षरी आणि टाइमस्टॅम्प विनंतीची सत्यता पडताळतात, केवळ अपेक्षित स्वाक्षरीशी जुळणाऱ्या विनंत्याच स्वीकारल्या जातील याची खात्री करून. समोरच्या सुरक्षित दरवाजाची कल्पना करा—जर कोणी योग्य किल्लीशिवाय दिसले, तर Cloudinary त्यांना आत येऊ देणार नाही!
SHA-1 सह HMAC हॅशिंग वापरल्याने सुरक्षेचा एक स्तर जोडला जातो जो हे सुनिश्चित करतो की गुप्त की शिवाय स्वाक्षरीची प्रतिकृती करणे जवळजवळ अशक्य आहे. बॅकएंड गो कोड या हॅशला जोडलेल्या पडताळणीसाठी गुप्त कीसह एकत्र करतो. अनाधिकृत अपलोड रोखण्यासाठी हे विशेषतः उपयुक्त आहे, कारण की शिवाय स्वाक्षरीचा अंदाज लावण्याचा प्रयत्न करणारा कोणीही अयशस्वी होईल. याव्यतिरिक्त, बॅकएंडवरील युनिट चाचण्या प्रमाणित करतात की व्युत्पन्न केलेली स्वाक्षरी अपेक्षित स्वरूप आणि मूल्याशी जुळते. हे सेटअप उत्पादन वातावरणासाठी मजबूत आहे, विविध क्लायंट विनंत्यांना सुरक्षितता आणि स्थिरता प्रदान करते, मग ते वेब ॲप किंवा मोबाइल क्लायंटवरून अपलोड करत असले तरीही. याची अंमलबजावणी केल्याने माझे डीबगिंगचे तास वाचले आहेत आणि प्रत्येक अपलोड सुरक्षितपणे प्रमाणित केला आहे हे जाणून घेणे खूप फायद्याचे वाटते! 🚀
गो मध्ये वैध क्लाउडिनरी स्वाक्षरी तयार करणे
क्लाउडिनरी अपलोड स्वाक्षरी तयार करण्यासाठी गो मध्ये लिहिलेली बॅकएंड स्क्रिप्ट. ही स्क्रिप्ट सुरक्षित HMAC हॅशिंग वापरून स्वाक्षरी तयार करते आणि टाइमस्टॅम्पसह परत करते.
package main
import (
"crypto/hmac"
"crypto/sha1"
"encoding/hex"
"fmt"
"net/http"
"sort"
"strconv"
"time"
)
func generateSignature(params map[string]string, secret string) (string, error) {
var keys []string
for key := range params {
keys = append(keys, key)
}
sort.Strings(keys)
stringToSign := ""
for _, key := range keys {
stringToSign += fmt.Sprintf("%s=%s&", key, params[key])
}
stringToSign = stringToSign[:len(stringToSign)-1]
mac := hmac.New(sha1.New, []byte(secret))
mac.Write([]byte(stringToSign))
return hex.EncodeToString(mac.Sum(nil)), nil
}
func getSignatureHandler(w http.ResponseWriter, r *http.Request) {
timestamp := strconv.FormatInt(time.Now().Unix(), 10)
params := map[string]string{
"timestamp": timestamp,
}
signature, err := generateSignature(params, "YOUR_CLOUDINARY_SECRET")
if err != nil {
http.Error(w, "Failed to generate signature", http.StatusInternalServerError)
return
}
w.Header().Set("Content-Type", "application/json")
fmt.Fprintf(w, "{\\"signature\\": \\"%s\\", \\"timestamp\\": \\"%s\\"}", signature, timestamp)
}
func main() {
http.HandleFunc("/generate-signature", getSignatureHandler)
http.ListenAndServe(":8080", nil)
}
JavaScript मध्ये Axios सह प्रतिमा अपलोड करणे
Axios वापरून क्लाउडिनरीवर इमेज अपलोड करण्यासाठी JavaScript मध्ये लिहिलेली फ्रंटएंड स्क्रिप्ट आणि बॅकएंडवरून तयार केलेली स्वाक्षरी.
१
गो मध्ये स्वाक्षरी निर्मितीसाठी युनिट चाचण्या
स्वाक्षरी निर्मिती प्रमाणित करण्यासाठी युनिट चाचणी स्क्रिप्टवर जा. स्वाक्षरीची अचूकता सुनिश्चित करण्यासाठी चाचणींमध्ये पॅरामीटर्ससह आणि त्याशिवाय प्रकरणांचा समावेश होतो.
package main
import (
"testing"
)
func TestGenerateSignature(t *testing.T) {
params := map[string]string{
"timestamp": "1730359693",
}
expectedSignature := "EXPECTED_SIGNATURE"
actualSignature, err := generateSignature(params, "YOUR_CLOUDINARY_SECRET")
if err != nil {
t.Errorf("Expected no error, got %v", err)
}
if actualSignature != expectedSignature {
t.Errorf("Expected signature %v, got %v", expectedSignature, actualSignature)
}
}
क्लाउडिनरी स्वाक्षरी सुरक्षा आणि टाइमस्टॅम्प वैधता एक्सप्लोर करत आहे
क्लाउडिनरीच्या सुरक्षित अपलोड प्रक्रियेत, एक महत्त्वपूर्ण घटक आहे टाइमस्टॅम्प पॅरामीटर हा टाइमस्टॅम्प दोन उद्देशांसाठी काम करतो: ते एका विशिष्ट कालावधीत विनंती प्रमाणित करते आणि रीप्ले हल्ल्यांना प्रतिबंधित करते. जेव्हा एखादी विनंती प्राप्त होते, तेव्हा क्लाउडिनरी तपासते की टाइमस्टॅम्प एका विशिष्ट टाइम विंडोमध्ये येतो (सामान्यतः काही मिनिटे). याचा अर्थ असा की एखाद्याने तुमचा API कॉल व्यत्यय आणला तरीही, ते विनंती पुन्हा वापरण्यास अक्षम असतील कारण टाइमस्टॅम्प त्वरीत कालबाह्य होईल. तुमचा बॅकएंड फ्रंटएंडच्या अपेक्षित टाइम विंडोच्या जवळ एक टाइमस्टॅम्प व्युत्पन्न करतो याची खात्री करणे गुळगुळीत आणि सुरक्षित प्रक्रियेसाठी आवश्यक आहे.
आणखी एक गंभीर विचार म्हणजे हॅशिंग आणि सह स्वाक्षरी HMAC-SHA1, संदेश प्रमाणीकरणाची एक पद्धत जी गुप्त कीसह हॅशिंग फंक्शन एकत्र करते. क्लाउडिनरीसह हा दृष्टिकोन वापरताना, तुमच्या बॅकएंड स्क्रिप्टने पॅरामीटर्सची एक स्ट्रिंग एकत्र केली पाहिजे, त्यांची वर्णमाला क्रमवारी लावली पाहिजे आणि त्यांना गुप्त कीसह हॅश करा. हा कठोर क्रम खात्री करतो की स्वाक्षरी विनंतीसाठी अद्वितीय आहे आणि क्लाउडिनरीच्या अपेक्षांशी जुळते. सारखे अतिरिक्त पॅरामीटर्स जोडणे folder किंवा १ तुमच्याकडे FormData फ्रंटएंड वर तुमचे अपलोड समृद्ध करू शकते, परंतु त्रुटी टाळण्यासाठी बॅकएंड स्वाक्षरी निर्मितीमध्ये याचा विचार केला पाहिजे.
एकदा तुमची स्वाक्षरी निर्मिती सुरू झाल्यानंतर, फायदे एकाच विनंतीच्या पलीकडे वाढतात. तुम्ही ही तत्त्वे सुरक्षित अपलोड किंवा HMAC-आधारित स्वाक्षरी आवश्यक असलेल्या इतर सेवांवर लागू करू शकता. शिवाय, Cloudinary ची रिअल-टाइम मीडिया ट्रान्सफॉर्मेशन वैशिष्ट्ये एकदा स्वाक्षरीची पायरी सोडवल्यानंतर एक्सप्लोर करणे सोपे होते, ज्यामुळे तुम्हाला अपलोडच्या वेळी इमेज ट्रान्सफॉर्मेशन स्वयंचलित करता येते. या चरणांच्या योग्य अंमलबजावणीमुळे भविष्यातील गरजांशी जुळवून घेणारा लवचिक, उच्च-सुरक्षा मीडिया हाताळणी सेटअप होतो! 🔐
क्लाउडिनरी स्वाक्षरी त्रुटी आणि सुरक्षित अपलोड बद्दल सामान्य प्रश्न
- क्लाउडिनरीमध्ये "अवैध स्वाक्षरी" त्रुटीचा अर्थ काय आहे?
- ही त्रुटी सहसा उद्भवते जेव्हा तुमच्या बॅकएंडवरून तयार केलेली स्वाक्षरी क्लाउडिनरीच्या सर्व्हरच्या अपेक्षित स्वाक्षरीशी जुळत नाही. बहुतेकदा, हे चुकीच्या पद्धतीने ऑर्डर केलेल्या पॅरामीटर्समुळे किंवा जुळत नसलेल्या टाइमस्टॅम्प मूल्यांमुळे होते.
- टाइमस्टॅम्प वैध असल्याची खात्री मी कशी करू शकतो?
- वापरून बॅकएंडवर सेकंदांमध्ये वर्तमान वेळेच्या जवळचा टाइमस्टॅम्प व्युत्पन्न करा strconv.FormatInt(time.Now().Unix(), 10) गो मध्ये. हे क्लाउडिनरीच्या अपेक्षित टाइमस्टॅम्पसह वेळेची विसंगती कमी करते.
- माझी HMAC-SHA1 स्वाक्षरी निर्मिती महत्त्वाची का आहे?
- क्लाउडिनरी अपलोड सुरक्षित करण्यासाठी HMAC-SHA1 वापरते, फक्त तुमच्या सोबत स्वाक्षरी केलेल्या विनंत्यांची खात्री करून secret की स्वीकारल्या जातात. ही पद्धत अनधिकृत प्रवेशास प्रतिबंध करण्यात मदत करते आणि तुमचा मीडिया सुरक्षित असल्याचे सुनिश्चित करते.
- स्वाक्षरीमध्ये कोणते पॅरामीटर्स समाविष्ट केले पाहिजेत?
- मूलभूत सेटअपसाठी, समाविष्ट करा ५. अधिक जटिल कॉन्फिगरेशनसाठी, इतर पर्याय जोडा folder, १, किंवा context, परंतु हे दोन्ही फ्रंटएंडमध्ये जोडलेले असल्याची खात्री करा FormData आणि बॅकएंड स्वाक्षरी निर्मिती.
- मी स्वाक्षरी त्रुटीचे त्वरित निवारण कसे करू शकतो?
- अचूक मुद्रित करून प्रारंभ करा stringToSign तुमच्या बॅकएंडमध्ये आणि पॅरामीटर ऑर्डर आणि संरचना सुनिश्चित करण्यासाठी क्लाउडिनरी डॉक्युमेंटेशनशी तुलना करा. लॉगिंग जोडल्याने तुमची स्वाक्षरी अपेक्षेपेक्षा कुठे वेगळी आहे हे कळू शकते.
- HMAC म्हणजे काय आणि ते क्लाउडिनरी अपलोडसाठी का वापरले जाते?
- HMAC (Hash-based Message Authentication Code) ही की वापरून हॅश तयार करण्याची एक सुरक्षित पद्धत आहे, जी डेटाची अखंडता आणि सत्यता प्रदान करते. Cloudinary ला सुरक्षितपणे अपलोड साइन इन करण्यासाठी HMAC-SHA1 आवश्यक आहे.
- मी लोकलहोस्टवर स्वाक्षरी निर्मितीची चाचणी करू शकतो का?
- होय, लोकलहोस्टवर बॅकएंड सिग्नेचर जनरेशन चालवणे सामान्य आहे. फक्त खात्री करा API key आणि secret तुमच्या डेव्हलपमेंट एनवायरमेंट व्हेरिएबल्समध्ये योग्यरित्या सेट केले आहेत.
- टाइमस्टॅम्प-आधारित आणि टोकन-आधारित प्रमाणीकरणामध्ये काय फरक आहे?
- टाइमस्टॅम्प-आधारित प्रमाणीकरणासाठी प्रत्येक अपलोडसाठी वैध टाइमस्टॅम्प आवश्यक आहे, तर टोकन-आधारित प्रवेशासाठी तात्पुरते टोकन वापरते. टाइमस्टॅम्प-आधारित सोपे आणि सामान्यतः क्लाउडिनरीसह वापरले जाते.
- अधिक पॅरामीटर्स जोडल्याने त्रुटी येऊ शकते?
- होय, प्रत्येक अतिरिक्त पॅरामीटर दोन्ही फ्रंटएंडमध्ये समाविष्ट करणे आवश्यक आहे FormData आणि बॅकएंड generateSignature कार्य जर ते संरेखित केले नाहीत, तर ते "अवैध स्वाक्षरी" त्रुटी आणेल.
- पॅरामीटर ऑर्डरिंगचा स्वाक्षरीवर कसा परिणाम होतो?
- पॅरामीटर ऑर्डर करणे महत्वाचे आहे. वापरा १५ त्यांना बॅकएंडमध्ये वर्णक्रमानुसार क्रमाने लावण्यासाठी; हा ऑर्डर क्लाउडिनरीच्या अपेक्षांशी जुळला पाहिजे.
- वातावरणात सुरक्षितपणे हे अपलोड स्वयंचलित करण्याचा काही मार्ग आहे का?
- होय, एचएमएसी प्रक्रियेसह पर्यावरण-विशिष्ट API की आणि रहस्ये वापरणे, विविध वातावरणात (डेव्ह, स्टेजिंग, उत्पादन) सुरक्षित, सुसंगत स्वाक्षरीसाठी अनुमती देते.
क्लाउडिनरी अपलोड त्रुटींवरील अंतिम विचार
क्लाउडिनरीसह मीडिया अपलोड हाताळताना, "अवैध स्वाक्षरी" त्रुटी टाळण्यासाठी सुरक्षित आणि सातत्यपूर्ण स्वाक्षरी निर्मिती प्रक्रिया महत्वाची आहे. याची खात्री करणे टाइमस्टॅम्प आणि पॅरामीटर क्रम योग्य आहे हे गुळगुळीत एकत्रीकरणासाठी महत्त्वाचे आहे. अचूक स्वाक्षरी स्ट्रिंगची चाचणी करणे देखील समस्या उघड करण्यात मदत करू शकते.
बॅकएंड आणि फ्रंटएंड पायऱ्या संरेखित करून, हा दृष्टिकोन एक मजबूत आणि लवचिक समाधान तयार करतो. Go आणि JavaScript सह HMAC हॅशिंग तंत्र सुरक्षित, रीअल-टाइम अपलोड करण्यास अनुमती देते, ज्यामुळे तुम्हाला तुमच्या ऍप्लिकेशन्समधील मीडिया आणि इतर संसाधने हाताळण्यासाठी एक विश्वासार्ह पद्धत मिळते! 🎉
पुढील वाचन आणि संदर्भ
- एपीआय स्वाक्षरीसाठी सुरक्षित अपलोड पद्धती आणि HMAC वापरण्याचे तपशील यावर आढळू शकतात क्लाउडिनरीचे अधिकृत दस्तऐवजीकरण .
- Go च्या HMAC आणि SHA1 हॅशिंगबद्दल अधिक माहितीसाठी, पहा प्रोग्रामिंग भाषा दस्तऐवजीकरण जा क्रिप्टो पॅकेजमधील HMAC वर.
- फाइल अपलोड प्रक्रियेसह Axios समाकलित करू पाहणाऱ्यांसाठी, पहा Axios दस्तऐवजीकरण अधिक उदाहरणे आणि पर्यायांसाठी.