Google Apps Script로 이미지 파일을 덮어 쓸 수 있습니까? 난 노력 했어:
file.setContent(newBlobImage);
file.replace(newBlobImage);
둘 다 작동하지 않습니다. .setContent()
파일에있는 모든 데이터를 삭제하고 변수 이름을 텍스트로 쓰는 것처럼 보일 수도 있습니다. 나는 .setContent()
및 둘 다 .replace()
텍스트 문서를 의미 한다고 가정하고 있으며 아마도 그것이 작동하지 않는 이유 일 것입니다.
텍스트 파일이나 스프레드 시트라면 파일을 지운 다음 새 콘텐츠를 추가 할 수 있습니다.
파일을 휴지통으로 이동 한 다음 새 파일을 만들 수 있지만 다른 방법이있는 경우에는 사용하지 않는 것이 좋습니다.
같은 이름의 파일을 작성하면 기존 파일을 덮어 쓰지 않고 같은 이름의 다른 파일을 생성합니다.
파일을 휴지통으로 보낼 수 있었던 유일한 방법은를 DocsList
사용하는 것이며 이미지 파일을 만드는 데 성공한 유일한 방법은 DriveApp
. 그래서 나는를 사용하여 파일을 휴지통으로 보낸 DocsList
다음 DriveApp
.
음, 파일을 휴지통으로 보내지 않고 삭제하는 방법을 알아 냈으므로 나중에 휴지통을 정리할 필요가 없습니다. Google Drive SDK
애플리케이션 스크립트의 내부는이 remove
휴지통으로 파일을 전송하지 않은 방법을, 그냥 사라 졌어요.
var myFolder = DriveApp.getFolderById('3Bg2dKau456ySkhNBWB98W5sSTM');
thisFile = myFolder.getFilesByName(myFileName);
while (thisFile.hasNext()) {
var eachFile = thisFile.next();
var idToDLET = eachFile.getId();
Logger.log('idToDLET: ' + idToDLET);
var rtrnFromDLET = Drive.Files.remove(idToDLET);
};
그래서 나는 파일을 휴지통으로 보내지 않고 파일을 삭제하는 DriveApp
서비스와 결합하고 DriveAPI
있습니다. DriveAPI
파일 이름으로 찾아 지는가 있도록 .remove이 파일 ID가 필요하지만 파일 ID가없는, 파일 ID를 검색 한 후 ID 파일을 삭제하는 데 사용됩니다. 따라서 파일을 덮어 쓰는 방법을 찾을 수없는 경우 휴지통으로 이동하지 않고 최소한 이전 파일을 삭제할 수 있습니다.
방금 DriveAPI
서비스에 Patch
및 Update
옵션 이 있음을 알았습니다 .
.patch(resource, fileId, optionalArgs)
Google 문서 패치 파일 메타 데이터를 업데이트합니다.
resource
인수는 아마도 메타 데이터입니다. 은 fileId
자명하다. optionalArgs
HTTP 요청 패치 의미 체계를 따르는 매개 변수가 있다고 생각합니다 . 모르겠어요.
패치와 업데이트가 모두 데이터를 업데이트하는 것 같습니다. 업데이트는 것입니다 PUT
그 것이다 요청
선택적 매개 변수를 제공하지 않으면 이전에 설정된 데이터를 지 웁니다.
문서에 따르면. 따라서 누락 된 매개 변수는 무시되기 때문에 패치 요청을 사용하는 것이 더 안전합니다. 나는 아직 시도하지 않았지만 아마도 이것이 답일 것입니다.
에서 오류가 발생 Patch
하므로 시도해 보겠습니다 Update
.
.update(resource, fileId, mediaData)
여기에는 blob 형식의 mediaData에 대한 인수가 있습니다. 그리고 그것이 제가 필요한 것이라고 생각합니다. 그러나 resource
매개 변수에 필요한 것이 무엇인지 잘 모르겠습니다 . 그래서 나는 거기에 갇혀 있습니다.
다음 update()
방법을 사용하여 Google Apps Script 및 DriveAPI로 이미지 파일을 덮어 쓸 수 있습니다 .
.update(File resource, String fileId, Blob mediaData)
어디에 file resource
:
var myFileName = 'fileName' + '.jpg';
var file = {
title: myFileName,
mimeType: 'image/jpeg'
};
DriveApp 서비스를 사용하여 파일 ID를 얻고 있으며 Blob은 사용자가 업로드 한 것입니다.
를 사용 DriveAPI
하려면 Resources
, Advanced Google Services
메뉴를 통해 추가해야 합니다. Drive API
을 ON으로 설정하십시오 .
var allFilesByName,file,myFolder,myVar,theFileID,thisFile;
//Define var names without assigning a value
file = {
title: myFileName,
mimeType: 'image/jpeg'
};
myFolder = DriveApp.getFolderById('Folder ID');
allFilesByName = myFolder.getFilesByName(myFileName);
while (allFilesByName.hasNext()) {
thisFile = allFilesByName.next();
theFileID = thisFile.getId();
//Logger.log('theFileID: ' + theFileID);
myVar = Drive.Files.update(file, theFileID, uploadedBlob);
};
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다