یہ باب Go Resty لائبریری کا استعمال کرکے فائل اپ لوڈ اور ڈاؤن لوڈ کرنے کے طریقے پیش کرتا ہے۔
ملٹی پارٹ فائل اپ لوڈ
Multipart POST درخواست کے ذریعے فائلوں کو اپ لوڈ کریں
// پہلے دو فائل پڑھیں
profileImgBytes, _ := os.ReadFile("/Users/jeeva/test-img.png")
notesBytes, _ := os.ReadFile("/Users/jeeva/text-file.txt")
// ایک Resty کلائنٹ بنائیں
client := resty.New()
// فائل اور پیرامیٹرز کو خود بخود اپ لوڈ کرنے کے لئے SetFileReader استعمال کریں
// دیگر فارم پیرامیٹرز کو سیٹ کرنے کے لئے SetFormData کا استعمال کریں
resp, err := client.R().
SetFileReader("profile_img", "test-img.png", bytes.NewReader(profileImgBytes)).
SetFileReader("notes", "text-file.txt", bytes.NewReader(notesBytes)).
SetFormData(map[string]string{
"first_name": "Jeevanandam",
"last_name": "M",
}).
Post("http://www.tizi365.com/upload")
مقامی فائلوں کو سیدھے اپ لوڈ کریں
یہ پہلے والے سے زیادہ آسان ہے، کیونکہ یہ مقامی فائلوں کو پڑھنے کی ضرورت نہیں ہے۔
// ایک Resty کلائنٹ بنائیں
client := resty.New()
// فائل اور باؤنڈ درخواست پیرامیٹر فیلڈ سیٹ کرنے کے لئے SetFile کا استعمال کریں
resp, err := client.R().
SetFile("profile_img", "/Users/jeeva/test-img.png").
Post("http://myapp.com/upload")
// SetFiles کا استعمال کرکے فائلوں کو بیچ میں اپ لوڈ کریں
resp, err := client.R().
SetFiles(map[string]string{
"profile_img": "/Users/jeeva/test-img.png",
"notes": "/Users/jeeva/text-file.txt",
}).
Post("http://myapp.com/upload")
// فائلوں کو بیچ میں اپ لوڈ کریں اور اُن ساتھ دیگر فارم پیرامیٹرز سیٹ کریں
resp, err := client.R().
SetFiles(map[string]string{
"profile_img": "/Users/jeeva/test-img.png",
"notes": "/Users/jeeva/text-file.txt",
}).
SetFormData(map[string]string{
"first_name": "Jeevanandam",
"last_name": "M",
"zip_code": "00001",
"city": "my city",
"access_token": "C6A79608-782F-4ED0-A11D-BD82FAD829CD",
}).
Post("http://myapp.com/profile")
فائلوں کو ڈاؤن لوڈ کریں
// ایک Resty کلائنٹ بنائیں
client := resty.New()
// فائل کی آؤٹپٹ ڈائریکٹری سیٹ کریں، اگر یہ موجود نہیں ہو تو Resty خود اسے بنا دے گا
// اگر SetOutput پیرامیٹر کے ساتھ ایک مطلق راستہ سیٹ کیا گیا ہو تو یہ ترتیب اختیاری ہے۔
client.SetOutputDirectory("/Users/tizi365/Downloads")
// یہاں ایک HTTP درخواست بھیجیں اور SetOutput پیرامیٹر کے ساتھ درخواست کے نتیجے کو فائل پتھ میں محفوظ کریں
_, err := client.R().
SetOutput("plugin/ReplyWithHeader-v5.1-beta.zip").
Get("http://bit.ly/1LouEKr")
// یہاں ایک مطلق راستے کا مدنظر رکھتے ہوئے ایک مثال ہے
_, err := client.R().
SetOutput("/MyDownloads/plugin/ReplyWithHeader-v5.1-beta.zip").
Get("http://bit.ly/1LouEKr")