2011-09-13 3 views
5

"मैं बाल्टी बनाने और अपने .NET SDK का उपयोग करके अमेज़ॅन एस 3 में फ़ाइलों को अपलोड करने का प्रयास कर रहा हूं। मैं बाल्टी बना सकते हैं और निर्दिष्ट है कि वे यूरोपीय संघ के क्षेत्र में बनाया जा करने में सक्षम हूँ।अमेज़ॅन एस 3 में एक बाल्टी में फ़ाइल अपलोड करने में "पुनः प्रयास प्रयासों की अधिकतम संख्या"

PutObjectRequest request = new PutObjectRequest(); 
request.WithBucketName(bucketName) 
    .WithCannedACL(S3CannedACL.PublicRead) 
    .WithKey(remoteFileName) 
    .WithInputStream(uploadFileStream); 

फाइल अपलोड कोड त्रुटि के साथ विफल "अधिकतम पुन: प्रयास करें: बाल्टी बनाने के लिए इस्तेमाल कोड

PutBucketRequest request = new PutBucketRequest(); 
request.WithBucketName(bucketName) 
     .WithBucketRegion(S3Region.EU); 

client.PutBucket(request); 

नीचे के रूप में मैं उसके बाद निम्न कोड का उपयोग कर बाल्टी में एक फ़ाइल अपलोड करने के लिए आगे बढ़ना है प्रयास पर पहुंच गया। "

क्या कोई मुझे बता सकता है कि अपलोड करने के लिए मुझे और क्या करना है?

धन्यवाद।

संपादित करें: एडब्ल्यूएस प्रबंधन कंसोल का उपयोग कर एक ही बाल्टी में फ़ाइल अपलोड करने का प्रयास ठीक काम करता है।

उत्तर

13

मैं इस मुद्दे पाया, पिछले पर।

किसी विशिष्ट क्षेत्र में बाल्टी को लक्षित करते समय, अमेज़ॅन एस 3 क्लाइंट ऑब्जेक्ट को एक विशिष्ट एंडपॉइंट का उपयोग करने के लिए कॉन्फ़िगर करना होगा। निर्माता और ग्राहक के निर्माण में के रूप में नीचे वर्ग के व्यक्ति के तरीकों में है endpoint कॉन्फ़िगर करने के लिए कोड है:

public class AmazonS3Service : IAmazonS3Service 
{ 
    private AmazonS3 client; 
    private string accessKeyID; 
    private string secretAccessKeyID; 
    private AmazonS3Config config; 

    public AmazonS3Service() 
    { 
     accessKeyID = ConfigurationManager.AppSettings["AWSAccessKey"]; 
     secretAccessKeyID = ConfigurationManager.AppSettings["AWSSecretKey"]; 
     config = new AmazonS3Config(); 
     config.ServiceURL = ConfigurationManager.AppSettings["AWSEUEndPoint"]; 
     } 

    public void CreateBucket(string bucketName) 
    { 
     using (client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKeyID, secretAccessKeyID, config)) 
     { 
      try 
      { 
       PutBucketRequest request = new PutBucketRequest(); 
       request.WithBucketName(bucketName) 
         .WithBucketRegion(S3Region.EU); 

       client.PutBucket(request); 
      } 
      catch (AmazonS3Exception amazonS3Exception) 
      { 
       if (amazonS3Exception.ErrorCode != null && (amazonS3Exception.ErrorCode.Equals("InvalidAccessKeyId") || amazonS3Exception.ErrorCode.Equals("InvalidSecurity"))) 
       { 
       //log exception - ("Please check the provided AWS Credentials."); 
       } 
       else 
       { 
       //log exception - ("An Error, number {0}, occurred when creating a bucket with the message '{1}", amazonS3Exception.ErrorCode, amazonS3Exception.Message);  
       } 
      } 
     } 
    } 

    public void UploadFile(string bucketName, Stream uploadFileStream, string remoteFileName) 
    { 
     using (client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKeyID, secretAccessKeyID, config)) 
     { 
      try 
      { 
       PutObjectRequest request = new PutObjectRequest(); 
       request.WithBucketName(bucketName) 
        .WithCannedACL(S3CannedACL.PublicRead) 
        .WithKey(remoteFileName) 
        .WithInputStream(uploadFileStream); 

       using (S3Response response = client.PutObject(request)) 
       { 
        WebHeaderCollection headers = response.Headers; 
        foreach (string key in headers.Keys) 
        { 
         //log headers ("Response Header: {0}, Value: {1}", key, headers.Get(key)); 
        } 
       } 
      } 
      catch (AmazonS3Exception amazonS3Exception) 
      { 
       if (amazonS3Exception.ErrorCode != null && (amazonS3Exception.ErrorCode.Equals("InvalidAccessKeyId") || amazonS3Exception.ErrorCode.Equals("InvalidSecurity"))) 
       { 
       //log exception - ("Please check the provided AWS Credentials."); 
       } 
       else 
       { 
       //log exception -("An error occurred with the message '{0}' when writing an object", amazonS3Exception.Message); 
       } 
      } 
     } 
    } 
} 

अमेज़न की सेवाओं में से प्रत्येक के विभिन्न अंतिमबिंदुओं इस URL पर पाया जा सकता है - http://docs.amazonwebservices.com/general/latest/gr/index.html?rande.html

आशा इस कोई मदद करता है!

+0

बहुत बढ़िया, हल कर! धन्यवाद मेरी मदद के लिए –

+0

+1। –

संबंधित मुद्दे