Platforms to show: All Mac Windows Linux Cross-Platform
Required plugins for this example: MBS CURL Plugin, MBS Main Plugin, MBS Encryption Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /CURL/CURLS Amazon S3 upload
This example is the version from Wed, 3rd Jan 2023.
Project "CURLS Amazon S3 upload.xojo_binary_project"
FileTypes
Filetype text
End FileTypes
Class MainWindow Inherits Window
Control UploadButton Inherits PushButton
ControlInstance UploadButton Inherits PushButton
EventHandler Sub Action()
DoUpload
End EventHandler
End Control
Control ListBox1 Inherits ListBox
ControlInstance ListBox1 Inherits ListBox
End Control
Control ResultText Inherits Label
ControlInstance ResultText Inherits Label
End Control
Private Sub DoUpload()
dim e as integer
dim d as new UploadCURL
dim p as Picture = LogoMBS
// this is the image data to upload
'd.InputData = p.GetData(picture.FormatJPEG, picture.QualityHigh)
dim file as FolderItem = SpecialFolder.Desktop.Child("test.jpg")
Call d.OpenMTInputFile(file)
dim AWSAccessKeyId as String = "xxx"
dim AWSSecretAccessKey as String = "yyy"
dim Region as String = "eu-central-1"
Dim BucketName As String = "zzz"
Dim FileName As String = "test.jpg"
dim Service as String = "s3"
Dim Path As String = "/" + BucketName + "/" + EncodeURLComponent(Filename)
dim Domain as String // empty for auto
dim Verb as String = "PUT"
dim HashedPayload as String // empty for auto
HashedPayload = SHA256MBS.HashFile(file, True)
call d.SetupAWS(AWSAccessKeyId, AWSSecretAccessKey, Region, Service, Path, Domain, Verb, HashedPayload)
e=d.Perform
listbox1.addrow "Result: "+str(e)
dim DebugMessage as string = d.DebugMessages // check in debugger on error
dim OutputData as string = d.OutputData
dim HTTPResult as integer = d.GetInfoResponseCode
if e <> 0 or HTTPResult <> 200 then
break
end if
End Sub
End Class
MenuBar MenuBar1
MenuItem UntitledMenu1 = ""
MenuItem FileMenu = "&File"
MenuItem FileQuit = "Quit"
MenuItem UntitledMenu5 = ""
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem UntitledMenu0 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "Clear"
MenuItem UntitledMenu4 = ""
MenuItem UntitledMenu3 = ""
MenuItem UntitledMenu2 = ""
End MenuBar
Class App Inherits Application
End Class
Class UploadCURL Inherits CURLSMBS
EventHandler Function Progress(dltotal as Int64, dlnow as Int64, ultotal as Int64, ulnow as Int64, percent as double) As boolean
if ultotal=0 then
MainWindow.listbox1.addrow "Uploading..."
else
MainWindow.listbox1.addrow "Uploading "+Format(ulnow/ultotal,"-0%")+" "+stR(ulnow)+" of "+str(ultotal)
end if
End EventHandler
End Class
End Project
See also:
- /CURL/CURLS Amazon S3 download
- /CURL/CURLS get and put/CURLS get and put
- /CURL/CURLS headers
- /CURL/CURLS post form/CURLS post form
- /CURL/CURLS query
- /CURL/CURLS resume download
- /CURL/CURLS resume download with speed measurement
- /CURL/CURLS SSL verification/CURLS SSL verification
- /CURL/CURLS text download
- /CURL/CURLS upload to Web App/Web Upload Receiver
The items on this page are in the following plugins: MBS CURL Plugin.