简体   繁体   中英

Getting WebException “The operation has timed out” at System.Net.HttpWebRequest.GetResponse() when reading images and video from amazon s3

Here is my code to create image url :

List<FileName> lstFileURL = AmazonFunction.GetFileUrlList(BucketName, BucketFolderName, Time);

create amazons3client object :

private static AmazonS3Client GetS3Client()
            {
                NameValueCollection appConfig = ConfigurationManager.AppSettings;

                AmazonS3Client s3Client = (AmazonS3Client)AWSClientFactory.CreateAmazonS3Client(
                        appConfig["AWSAccessKey"],
                        appConfig["AWSSecretKey"],
                        RegionEndpoint.USEast1
                        );
                return s3Client;
            }

create image url list :

    public static List<FileName> GetFileUrlList(string BUCKET_NAME, string name, double Time)
                {

                    List<FileName> ListImageName = new List<FileName>();
                    using (GetS3Client())
                    {
                        try
                        {
                            ListObjectsRequest Lor = new ListObjectsRequest()
                            {
                                BucketName = BUCKET_NAME,
                                // with Prefix is a folder Key, it will list only child of that folder
                                Prefix = name,
                                //with Delimiter is '/', it will not get folder.
                                Delimiter = "/"
                            };
                            ListObjectsResponse response1 = GetS3Client().ListObjects(Lor);



                            //ListBuckets

                            for (int i = 0; i < response1.S3Objects.Count; i++)
                            {
                                ListImageName.Add(new FileName(MakeUrl(BUCKET_NAME, response1.S3Objects[i].Key.ToString().Split('/')response1.S3Objects[i].Key.ToString().Split('/').Length - 1], Time)));

                            }


                        }
                        catch (AmazonS3Exception ex)
                        {
                            //Show Exception
                        }
                    }
                    return ListImageName;
                }

Here is my code to create video url :

VideoFilePath = AmazonFunction.GetFileURL(BucketName, videotitle, Time);

create video url :

        public static string GetFileURL(string BUCKET_NAME, string FILE_NAME, double TIME)
                {
                    using (GetS3Client())
                    {
                        try
                        {
                            GetObjectRequest gor = new GetObjectRequest()
                            {
                                BucketName = BUCKET_NAME,
                                Key = FILE_NAME,
                            };

                            GetObjectResponse response = GetS3Client().GetObject(gor);

                            string FileURL = MakeUrl(BUCKET_NAME, FILE_NAME, TIME);

                            return FileURL;
                        }
                        catch (AmazonS3Exception ex)
                        {
                            return "FileNotFound";
                        }
                    }
                }

I am getting System.Net.WebException: The operation has timed out on below lines :

List<FileName> lstFileURL = AmazonFunction.GetFileUrlList(BucketName, BucketFolderName, Time);
VideoFilePath = AmazonFunction.GetFileURL(BucketName, videotitle, Time);

I am using MVC 4.

Try adding the below config in your web.config.

    <system.net>
            <defaultProxy enabled = "true" useDefaultCredentials = "true"/>
    </system.net>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM