예제 #1
0
        byte[] imageData;        // = new byte[10000000];
        public async void awsSaveFile(MediaFile img, string name, Label lbl)
        {
            var s3 = new S3(key, secret);

            var bucket = "ahsscoutphotos";

            MemoryStream mstr = new MemoryStream();

            img.Source.CopyTo(mstr);
            imageData = mstr.ToArray();

            try
            {
                try
                {
                    await s3.CreateBucketAsync(bucket);

                    //System.Diagnostics.Debug.WriteLine (String.Format("Bucket {0} created", bucket));
                }
                catch (Exception x)
                {
                    System.Diagnostics.Debug.WriteLine(x.Message);
                }

                //await s3.PutObjectAsync(bucket, "myobject", "Hello World");
                //System.Diagnostics.Debug.WriteLine (String.Format("Object myobject created"));

                //var s = await s3.GetObjectAsStringAsync(bucket, "myobject");
                //System.Diagnostics.Debug.WriteLine (String.Format("{0} read", s));

                //await s3.DeleteObjectAsync(bucket, "myobject");
                //System.Diagnostics.Debug.WriteLine (String.Format("Object myobject deleted"));


                await s3.PutObjectAsync(bucket, name, imageData, progress : l => lbl.Text = string.Format("Uploaded {0}%", (100 * l) / imageData.Length));

                //await s3.DeleteObjectAsync(bucket, name);

                //await s3.DeleteBucketAsync(bucket);
                //System.Diagnostics.Debug.WriteLine (String.Format("Empty bucket {0} deleted", bucket));
                lbl.Text = "Upload successful!";
                System.Diagnostics.Debug.WriteLine("Success");
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
                //return false;
            }
            //return true;
        }
예제 #2
0
        protected override void OnCreate(Bundle bundle)
        {
            var re =
                (HttpWebRequest)
                WebRequest.Create(string.Format("http://{0}.s3.amazonaws.com/{1}", "bucket", "name"));

            re.AllowWriteStreamBuffering = false;


            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            // Get our button from the layout resource,
            // and attach an event to it
            Button button = FindViewById <Button>(Resource.Id.MyButton);

            button.Click += async delegate
            {
                button.Text = "In progress";
                string key    = "AKIAIFT26MYLVAFP7QXQ";
                string secret = "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";
                var    random = new Random();
                var    s3     = new S3(key, secret);

                var bucket = "ahsscoutphotos";

                try
                {
                    await s3.CreateBucketAsync(bucket);

                    button.Text = String.Format("Bucket {0} created", bucket);

                    await s3.PutObjectAsync(bucket, "myobject", "Hello World");

                    button.Text = String.Format("Object myobject created");

                    var s = await s3.GetObjectAsStringAsync(bucket, "myobject");

                    button.Text = String.Format("{0} read", s);

                    await s3.DeleteObjectAsync(bucket, "myobject");

                    button.Text = String.Format("Object myobject deleted");

                    var dummyData = new byte[1000000];
                    await s3.PutObjectAsync(bucket, "big", dummyData, progress : l => button.Text = string.Format("Upload {0}%", (100 * l) / dummyData.Length));

                    await s3.DeleteObjectAsync(bucket, "big");

                    await s3.DeleteBucketAsync(bucket);

                    button.Text = String.Format("Empty bucket {0} deleted", bucket);


                    button.Text = "Success";
                }
                catch (S3Exception ex)
                {
                    new AlertDialog.Builder(this)
                    .SetPositiveButton("Ok", (_, __) => { })
                    .SetMessage(ex.Message)
                    .SetTitle("Error")
                    .Show();

                    button.Text = "Click me";
                }
            };
        }