본문 바로가기
프로그래밍/유니티

클라이언트 데이터 JSON 파싱 - 5

by Programmer.Junny 2024. 12. 10.

이제 '사전서명된 URL' 을 가져오는 코드를 구현하도록 하자.

using Cysharp.Threading.Tasks;
using UnityEngine;
using UnityEngine.Networking;

[System.Serializable]
public class ResponseData
{
    public string url;
}

public class AWSManager
{
    public static async UniTask<string> GetPresignedUrl(string apiUrl, string bucketName, string objectName)
    {
        string requestUrl = $"{apiUrl}?bucket_name={bucketName}&object_name={objectName}";
    
        using (UnityWebRequest request = UnityWebRequest.Get(requestUrl))
        {
            var operation = request.SendWebRequest();

            while (!operation.isDone)
                await UniTask.Yield();

            if (request.result == UnityWebRequest.Result.Success)
            {
                var jsonResponse = request.downloadHandler.text;
                var responseData = JsonUtility.FromJson<ResponseData>(jsonResponse);
                return responseData.url;
            }
            else
            {
                Debug.LogError($"API 호출 실패: {request.error}");
                return null;
            }
        }
    }
}

매개변수의 apiUrl 은 AWS API Gateway의 엔드포인트 URL을 넣고 가져올 버킷이름, 가져올 오브젝트 이름을 넣으면 '사전서명된 URL'을 받아온다. 이 URL은 해당 버킷과 해당 오브젝트에 대한 권한을 부여하였기 때문에 사전서명된 URL을 통해 JSON 파일들을 가져올 수 있게 된다.

UnityWebRequest.Get()을 통해 원하는 JSON 데이터를 가져올 수 있다.

이로써 우리는 보안성을 높인 클라이언트 데이터를 받아오도록 구현해보았다.
포스팅을 하면서 상세히 적지 않은 부분을 나열해보았다.

  • GoogleSheets 를 JSON 파일로 파싱하는 툴 (AWS S3 업로드 포함)
  • JSON 을 캐싱하여 최적화하는 부분
  • AES 암호화 키 생성하고 S3에 업로드할 수 있는 툴

대충 이정도로 보여지는데 포스팅의 빈 부분은 차차 채워나가도록 해야겠다.

최근댓글

최근글

skin by © 2024 ttuttak