Access S3 files from Unity for mobile development
I'm trying to configure the AWS S3 service to download the included files in a bucket using Unity for mobile.
I downloaded the SDK package and I got it installed.
From AWS console I set up a IAM policy and roles for unauth users
I created a Cognito IdentityPool and got the relative id
I set up the S3 bucket and its policy using the generator, including the **arn:aws:iam::{id}:role/{cognito unauth role}** and the resource **arn:aws:s3:::{bucket name}/***.
In code I set credentials and region and create CognitoAWSCredentials (C# used)
```C#
_credentials = new CognitoAWSCredentials(IdentityPoolId, _CognitoIdentityRegion);
```
then I create the client:
```C#
_s3Client = new AmazonS3Client(_credentials, RegionEndpoint.EUCentral1);
// the region is the same in _CognitoIdentityRegion
```
I then try to use the s3Client to get my files (in bucketname subfolders)
```
private void GetAWSObject(string S3BucketName, string folder, string sampleFileName, IAmazonS3 s3Client)
{
string message = string.Format("fetching {0} from bucket {1}", sampleFileName, S3BucketName);
Debug.LogWarning(message);
s3Client.GetObjectAsync(S3BucketName, folder + "/" + sampleFileName, (responseObj) =>
{
var response = responseObj.Response;
if (response.ResponseStream != null)
{
string path = Application.persistentDataPath + "/" + folder + "/" + sampleFileName;
Debug.LogWarning("\nDownload path AWS: " + path);
using (var fs = System.IO.File.Create(path))
{
byte[] buffer = new byte[81920];
int count;
while ((count = response.ResponseStream.Read(buffer, 0, buffer.Length)) != 0)
fs.Write(buffer, 0, count);
fs.Flush();
}
}
else
{
Debug.LogWarning("-----> response.ResponseStream is null");
}
});
}
```
At this point I cannot debug into the Async method, I don't get any kind of error, I don't get any file downloaded and I even cannot check is connection to AWS S3 has worked in some part of the script.
What am I doing wrong?
Thanks for help a lot!