Exemplo n.º 1
0
 public static void delete_object(object threadContext)
 {
     Program.pending_requests_mutex.WaitOne();
     Program.pending_requests++;
     Program.pending_requests_mutex.ReleaseMutex();
     string text = (string)threadContext;
     HttpWebRequest httpWebRequest = WebRequest.Create(string.Concat(new string[]
     {
         Program.storage_url,
         "/",
         Program.container,
         "/",
         text
     })) as HttpWebRequest;
     httpWebRequest.Headers.Add("X-Storage-Token: " + Program.auth_key);
     httpWebRequest.Method = "DELETE";
     Program.RequestState state = new Program.RequestState(httpWebRequest, text);
     Program.deleted_mutex.WaitOne();
     Program.deleted++;
     Program.deleted_mutex.ReleaseMutex();
     httpWebRequest.BeginGetResponse(new AsyncCallback(Program.delete_object_callback), state);
 }
Exemplo n.º 2
0
        public static void delete_object(object threadContext)
        {
            Program.pending_requests_mutex.WaitOne();
            Program.pending_requests++;
            Program.pending_requests_mutex.ReleaseMutex();
            string         text           = (string)threadContext;
            HttpWebRequest httpWebRequest = WebRequest.Create(string.Concat(new string[]
            {
                Program.storage_url,
                "/",
                Program.container,
                "/",
                text
            })) as HttpWebRequest;

            httpWebRequest.Headers.Add("X-Storage-Token: " + Program.auth_key);
            httpWebRequest.Method = "DELETE";
            Program.RequestState state = new Program.RequestState(httpWebRequest, text);
            Program.deleted_mutex.WaitOne();
            Program.deleted++;
            Program.deleted_mutex.ReleaseMutex();
            httpWebRequest.BeginGetResponse(new AsyncCallback(Program.delete_object_callback), state);
        }
Exemplo n.º 3
0
        private static void delete_object_callback(IAsyncResult result)
        {
            Program.pending_requests_mutex.WaitOne();
            Program.pending_requests--;
            Program.pending_requests_mutex.ReleaseMutex();
            Program.RequestState requestState = (Program.RequestState)result.AsyncState;
            string          text            = (string)requestState.data;
            HttpWebResponse httpWebResponse = (HttpWebResponse)requestState.request.EndGetResponse(result);

            httpWebResponse.Close();
            if (httpWebResponse.StatusCode != HttpStatusCode.OK && httpWebResponse.StatusCode != HttpStatusCode.NoContent)
            {
                if (httpWebResponse.StatusCode == HttpStatusCode.GatewayTimeout || httpWebResponse.StatusCode == HttpStatusCode.RequestTimeout)
                {
                    Console.WriteLine("Timeout while deleting:   " + text);
                    Program.object_names.Enqueue(text);
                    Program.deleted_mutex.WaitOne();
                    Program.deleted--;
                    Program.deleted_mutex.ReleaseMutex();
                }
                else
                {
                    if (httpWebResponse.StatusCode == HttpStatusCode.BadRequest)
                    {
                        Console.WriteLine("400 error while deleting: " + text);
                    }
                    else
                    {
                        if (httpWebResponse.StatusCode == HttpStatusCode.Forbidden)
                        {
                            Console.WriteLine("401 error while deleting: " + text);
                            Program.get_auth_key();
                        }
                        else
                        {
                            if (httpWebResponse.StatusCode == HttpStatusCode.NotFound)
                            {
                                Console.WriteLine("404 error while deleting: " + text);
                            }
                            else
                            {
                                if (httpWebResponse.StatusCode == HttpStatusCode.InternalServerError)
                                {
                                    Console.WriteLine("500 error while deleting: " + text);
                                }
                                else
                                {
                                    Console.WriteLine("HTTP request error while deleting: " + text);
                                    Console.WriteLine(string.Concat(new object[]
                                    {
                                        "Error ",
                                        httpWebResponse.StatusCode,
                                        ": ",
                                        httpWebResponse.StatusDescription
                                    }));
                                }
                            }
                        }
                    }
                }
            }
        }