2017-01-03 1 views
2

저는 아마존 s3을 처음 접했고 누군가이 질문에 답변 할 수 있는지 궁금합니다.aws s3이 파일을 덮어 쓰고 액세스하는 것을 어떻게 처리합니까?

모바일 앱을 구동하는 데 사용되는 정적 API/JSON 파일 집합이 있고 대부분 JSON 데이터가 정적 인 경우 업데이트가 언제든지 트리거 될 수 있으므로 데이터가 업데이트되고 JSON 파일도 이와 같이 업데이트되었습니다.

내 질문은 아마존이 액세스와 관련하여 파일 업데이트를 처리하는 방법, 사람이 파일을 액세스하려고 할 때 파일에 액세스하는 것이 차단 될지 또는 아마존 직원이 일부 파일 캐시를 처리하는지 여부입니다. 이것이 일어나지 않도록하십시오.

감사합니다!

+0

API의 오래된 데이터가 염려되는 경우 Dynamob를 조건부 쓰기 및 강력하게 일관된 읽기와 함께 사용할 수 있습니다. 조건부 기록은 이전 읽기 이후 데이터가 변경되지 않은 경우 데이터를 변경할 수 있습니다. 그리고 [강력하게 일관된 읽기] (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html)는 항상 모든 dynamodb 노드에서 동일한 데이터를 제공합니다. [조건부 쓰기 작업] (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithItems.html#WorkingWithItems.ConditionalUpdate) – strongjz

답변

3

차단되지는 않지만 개체가 이미 있고 최근에 교체되거나 삭제 된 경우 오래된 데이터가 나타날 수 있습니다.

S3는 새 객체의 PUTS에 대한 읽기 후 쓰기 일관성을 제공합니다.

S3는 PUTS 및 DELETES를 덮어 쓸 수있는 최종 일관성을 제공합니다. 이것이 의미하는 바는 user1이 JSON을 대체 했음에도 불구하고 user2가 JSON의 오래된 버전을 가져올 수 있다는 것입니다.

+0

감사합니다. Dave! 이렇게하면 기본적으로 업데이 트가 만들어지면 캐시 키를 기반으로 업데이트를 찾도록 내 앱을 실행하고 Json 파일을 만든 후에 업데이트 만하면 문제가 발생할 것입니다. – proxim0

2

S3의 개체를 실제로 업데이트 할 수 없습니다. 할 수있는 일은 전체 개체를 저장, 검색 및 삭제하는 것입니다. 객체의 내용을 '업데이트'하려면 객체 전체를 바꿉니다.

클라이언트 A가 대체 객체를 업로드하고 업로드가 승인되기 전에 클라이언트 B가 동일한 객체 키에 액세스하면 클라이언트 B가 원래 객체를 가져 오기를 기대합니다. 승인 후에는 객체가 완전히 배포되고 일관성이 있기 전에 클라이언트 B가 이전 객체 또는 새 객체를 가져올 수 있습니다. 그런 다음 클라이언트 B가 새 객체를 가져옵니다.

관련 문제