Python 上传服务并覆盖同名服务

import
arcpy, os, sys
import
xml.dom.minidom as DOM
 
arcpy.env.overwriteOutput=
True
 
# Update these variables
# The tempPath variable is a relative path which is the same directory
# this script is saved to. You can modify this value to a path on your
# system to hold the temporary files.
serviceName
= "importantPoints"
tempPath
= sys.path[0]
path2MXD
= r"C:\path2MXD\pts.mxd"
userName
= " "
passWord
= " "
 
# All paths are built by joining names to the tempPath
SDdraft
= os.path.join(tempPath,"tempdraft.sddraft")
newSDdraft
= os.path.join(tempPath,"updatedDraft.sddraft")
SD =os.path.join(tempPath, serviceName
+".sd")
 
arcpy.SignInToPortal_server(userName, passWord,"http://www.arcgis.com/")
mxd =arcpy.mapping.MapDocument(path2MXD)
arcpy.mapping.CreateMapSDDraft(mxd, SDdraft, serviceName,"MY_HOSTED_SERVICES")
 
# Read the contents of the original SDDraft into an xml parser
doc =DOM.parse(SDdraft)
 
# The follow 5 code pieces modify the SDDraft from a new MapService
# with caching capabilities to a FeatureService with Query,Create,
# Update,Delete,Uploads,Editing capabilities. The first two code
# pieces handle overwriting an existing service. The last three pieces
# change Map to Feature Service, disable caching and set appropriate
# capabilities. You can customize the capabilities by removing items.
# Note you cannot disable Query from a Feature Service.
tagsType
= doc.getElementsByTagName('Type')
for
tagType
in
tagsType:
    iftagType.parentNode.tagName
=='SVCManifest':
        iftagType.hasChildNodes():
            tagType.firstChild.data=
"esriServiceDefinitionType_Replacement"
 
tagsState
= doc.getElementsByTagName('State')
for
tagState
in
tagsState:
    iftagState.parentNode.tagName
=='SVCManifest':
        iftagState.hasChildNodes():
            tagState.firstChild.data=
"esriSDState_Published"
 
# Change service type from map service to feature service
typeNames
= doc.getElementsByTagName('TypeName')
for
typeName
in
typeNames:
    iftypeName.firstChild.data
=="MapServer":
        typeName.firstChild.data=
"FeatureServer"
 
#Turn off caching
configProps
= doc.getElementsByTagName('ConfigurationProperties')[0]
propArray
= configProps.firstChild
propSets
= propArray.childNodes
for
propSet
in
propSets:
    keyValues=
propSet.childNodes
    forkeyValue
inkeyValues:
        ifkeyValue.tagName
=='Key':
            ifkeyValue.firstChild.data
=="isCached":
                keyValue.nextSibling.firstChild.data=
"false"
 
#Turn on feature access capabilities
configProps
= doc.getElementsByTagName('Info')[0]
propArray
= configProps.firstChild
propSets
= propArray.childNodes
for
propSet
in
propSets:
    keyValues=
propSet.childNodes
    forkeyValue
inkeyValues:
        ifkeyValue.tagName
=='Key':
            ifkeyValue.firstChild.data
=="WebCapabilities":
                keyValue.nextSibling.firstChild.data=
"Query,Create,Update,Delete,Uploads,Editing"
 
# Write the new draft to disk
f =open(newSDdraft,'w')
doc.writexml( f )
f.close()
 
# Analyze the service
analysis
= arcpy.mapping.AnalyzeForSD(newSDdraft)
 
if
analysis[
'errors']=={}:
    # Stage the service
    arcpy.StageService_server(newSDdraft, SD)
 
    # Upload the service. The OVERRIDE_DEFINITION parameter allows you to override the
    # sharing properties set in the service definition with new values. In this case,
    # the feature service will be shared to everyone on ArcGIS.com by specifying the
    # SHARE_ONLINE and PUBLIC parameters. Optionally you can share to specific groups
    # using the last parameter, in_groups.
    arcpy.UploadServiceDefinition_server(SD,"My Hosted Services", serviceName,
                                         "", "", "",
"
", "OVERRIDE_DEFINITION","SHARE_ONLINE",
                                         "PUBLIC","SHARE_ORGANIZATION",
"")
 
    print"Uploaded and overwrote service"
 
else:
    # If the sddraft analysis contained errors, display them and quit.
    printanalysis['errors']

原文http://blogs.esri.com/esri/arcgis/2013/04/23/updating-arcgis-com-hosted-feature-services-with-python/

转载自:https://blog.csdn.net/lvdou25181/article/details/23912603

You may also like...