所以我可以使用office365包在SharePoint中上传文件,但是在SharePoint中它没有签入,我必须手动执行。该包中有什么方法可以进行签入吗?
这是我的代码:
def csv_to_sp(spfile_path,output):
ctx = Extract.connect()
target_folder = ctx.web.get_folder_by_server_relative_url(spfile_path)
with open(output,'rb') as content_file:
file_content = content_file.read()
target_folder.upload_file(output,file_content).execute_query()
response = 'Uploaded to sharepoint!'
return response
听起来目标库发生了以下情况之一,这会导致上传的文档在上传后被检出:
由于您没有提到必须指定字段值,我怀疑您的库中可能有#1。 尝试关闭“需要签出”设置并重新测试。
我刚刚让它为我工作。您需要对刚刚上传的对象进行第二次调用,并对其调用
checkin
方法。请参阅我添加到您的函数中的三行。您需要提取或提供文件名。
def csv_to_sp(spfile_path,output):
ctx = Extract.connect()
target_folder = ctx.web.get_folder_by_server_relative_url(spfile_path)
with open(output,'rb') as content_file:
file_content = content_file.read()
target_folder.upload_file(output,file_content).execute_query()
response = 'Uploaded to sharepoint!'
object_path = ctx.web.get_file_by_server_relative_url(spfile_path + <YOUR_FILE_NAME>)
ctx.load(object_path).execute_query()
object_path.checkin(comment="upload", checkin_type=2).execute_query()
return response
有三个
checkin_types
,分别是次要、主要和覆盖。
https://learn.microsoft.com/en-us/previous-versions/office/sharepoint-csom/ee542953(v=office.15)