2012-08-10 5 views
2

Google 문서 API (GData 사용)를 사용하여 통합을 만들었으므로 다른 응용 프로그램의 문서를 만들고 편집 할 수 있습니다. 원래 문서가 삭제되면 영구 삭제됩니다. 더 이상 Google 문서 도구 또는 Google 드라이브에서 볼 수 없었습니다. 이제 Google 문서 도구 API를 사용하여 파일을 삭제하면 Google 문서 도구의 문서 목록에 계속 나타납니다. "죄송합니다. 요청한 페이지 (또는 문서)가 없습니다."라는 메시지가 나타나면 해당 문서로 연결되는 링크를 따라 가려고 시도합니다. 페이지.Google 문서 도구 API를 사용하여 삭제 된 문서는 여전히 Google 드라이브에 표시됩니다.

Google 드라이브는 Google Docs API를 통해 취해진 행동을 존중하지 않습니까? Google 문서 도구 API와 Google 드라이브 API를 사용하여이 문서를 삭제해야하나요? 사용자가 Google 드라이브로 이전하지 않은 경우 어떻게해야하나요? 마이그레이션했는지 알 수있는 방법이 있습니까? 또는 Google 드라이브 API를 사용하여 Google 드라이브에서 이러한 문서를 깨끗하게 유지할 수 있도록 마이그레이션을 강제합니까?

답변

1

드라이브 API와 문서 목록 API는 모두 동일한 리소스에서 작동하므로 하나만 사용해야하며 이전 버전은 권장합니다.

드라이브 API를 사용하면 trash 또는 delete 개의 파일을 사용할 수 있습니다. 파일을 휴지통으로 만들면 파일이 휴지통으로 표시되도록 라벨이있는 Google 드라이브에 계속 표시되므로 여전히 untrash 수 있습니다.

파일을 완전히 제거하려면 delete 메서드를 사용해야합니다.

+0

문제는 드라이브 API와 문서 목록 API가 동일한 리소스에서 동일하게 작동하지 않는다는 것입니다. 문서 목록 API를 통해 발행 된 삭제로 인해 리소스가 완전히 삭제됩니다. 그러나 드라이브 웹 UI를 통해 여전히 리소스가 나열된 것으로 보입니다. 열거 된 리소스를 클릭하면 리소스가 더 이상 존재하지 않는다는 오류가 발생합니다. 기본 API에서 두 API가 동일하게 작동해야한다는 기대가있는 경우 Google 드라이브의 버그 여야합니다. – jottley

+0

기본적으로 문서 목록 API에서 삭제하면 문서가 휴지통으로 이동합니다. 문서 목록 API로 문서를 영구히 삭제하려면 '? delete = true'매개 변수를 추가해야합니다. https://developers.google.com/google-apps/documents-list/#deleting_documents_and_files –

+0

추가 중입니다. ? delete = 우리의 호출에 true. docsService.delete (새 URL (GoogleDocsConstants.URL_BASE_FEED +)/ + documentListEntry.getResourceId(). 하위 문자열 (documentListEntry.getResourceId(). lastIndexOf (':') +1) + "? delete = true") , documentListEntry.getEtag()); ' – jottley

0

Google 드라이브 API를 사용하는 동안 동일한 문제가 발생했습니다. 나는 API 삭제가 문서를 삭제할 때, 여전히 부모 폴더와 연결되는 링크가 남아있어 브라우저가 문서를 렌더링한다고 생각합니다. 아래 코드로 문서를 지우려고 피곤할 때 제대로 작동합니다.

DriveService.Childern.Delete (parentResId, fileId) .Fetch(); // fileId => 삭제할 문서의 ResourceId

+0

v3 API에서 구문이 약간 변경되었습니다. drive.files(). delete (id) .execute(); –

1

동일한 문제가 있었는데 드라이브 UI에 캐싱 중 일부라고 생각합니다.

파일이 올바르게 삭제 된 것처럼 보이며 드라이브 API에 표시되지 않습니다.

고아 스텁은 결국 캐시가 삭제 될 때마다 결국 삭제됩니다.

부모로부터 파일을 제거한 다음 삭제하면 드라이브를 테스트 할 때 드라이브 UI를 사용할 때 무슨 일이 발생했는지 쉽게 알 수 있습니다.

service.children(). (= folderId PARENT_ID, childId = FILE_ID)를 .Execute를 (삭제) service.files(). 삭제 (= FileID에 FILE_ID) .Execute를()는

0

이 캐싱 문제 파일이 실제로 제거되었습니다. 드라이브 UI에서 파일을 열려고하면 "죄송합니다. 요청한 파일이 존재하지 않습니다."라는 줄을보아야합니다.

곧 삭제 될 예정입니다.

관련 문제