2016-09-05 6 views
0

App Script를 사용하여 Google 드라이브 폴더를 다른 Google 드라이브로 복사하려고합니다. 여기,이 대상 이메일로 하나 개의 드라이브에서 다른 공유 폴더에 대한 코드입니다App Script를 사용하여 Google 드라이브 폴더를 다른 Google 드라이브 계정에 복사하는 방법은 무엇입니까?

// Make copy in Google Drive 
function CopyTamplate(companyName) { 

var folder = DriveApp.getFolderById("<<folder_id>>"); 
var folderid = folder.getId(); 

folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.VIEW); 

Drive.Permissions.insert(
    { 
    'role': 'reader', 
    'type': 'user', 
    'value': "[email protected]" 
    }, 
    folderid, 
    { 
    'sendNotificationEmails': 'false' 
    }); 


var sourceFolder = "Company1_copy_tamplete"; 
var targetFolder = companyName; 

var source = DriveApp.getFoldersByName(sourceFolder); 
var target = DriveApp.createFolder(targetFolder); 

if (source.hasNext()) { 
    copyFolder(source.next(), target); 
    } 
} 

: 지금은 계정을 대상으로하고 구글 drive.Here 내 응용 프로그램 스크립트 코드입니다 대상 폴더를 복사하려고 폴더를 공유하고 나는이 스크립트 함수를 호출 구글 스크립트 실행 API를 사용하고, 그리고 난이 오류를 얻고있다

function copyFolder(source, target) { 

var folders = source.getFolders(); 
var files = source.getFiles(); 

while(files.hasNext()) { 
    var file = files.next(); 
    file.makeCopy(file.getName(), target); 
} 

while(folders.hasNext()) { 
    var subFolder = folders.next(); 
    var folderName = subFolder.getName(); 
    var targetFolder = target.createFolder(folderName); 
    copyFolder(subFolder, targetFolder); 
} 
} 

: 함수는 CopyFolder이다. 스크립트 오류 메시지 : "작업이 허용되지 않습니다.". 이 문제를 해결하거나이 작업을 수행하는 다른 방법을 제안하도록 도와주십시오. 고맙습니다.

답변

1

Drive.Permissions.insert에서 지정한 역할이 'role': 'reader'이기 때문에 이러한 현상이 발생합니다. Sharing Files docs 읽기, 이들은 '독자'에 대한 유일한 허용 작업은 다음과 같습니다

- 읽은 메타 데이터 (예 : 이름, 설명) 파일 또는 폴더

- 읽은 파일의 내용

- 읽기 폴더

내가 소유자 또는 라이터로 역할을 설정하는 것이 좋습니다의 항목 목록 대신.