我有一些已保存的搜索,它们存储在文件柜的文件中,我想以编程方式下载这些文件,但我遇到了 Netsuite 的 10mb 文件大小限制。我已经搜索了 suitescript 文档,但我没有想到任何解决方案。有什么办法可以做到这一点吗?
我们最近从 Netsuite 下载了几百万个文件。由于限制(如您所描述的)和成本,我们没有使用 SuiteScript。如果这 不是 的要求,您可以使用适用于 Netsuite 的 Python SDK(使用 SOAP API)。我们定期使用类似于以下的代码提取 >50 MB 的文件:
from netsuitesdk import NetSuiteConnection
import logging
def connect() -> NetSuiteConnection:
token = oauth.Token(key=TOKEN_KEY, secret=TOKEN_SECRET)
consumer = oauth.Consumer(key=CONSUMER_KEY, secret=CONSUMER_SECRET)
NS_ACCOUNT = NETSUITE_ACCOUNT
NS_CONSUMER_KEY = consumer.key
NS_CONSUMER_SECRET = consumer.secret
NS_TOKEN_KEY = token.key
NS_TOKEN_SECRET = token.secret
nc = NetSuiteConnection(
account=NS_ACCOUNT,
consumer_key=NS_CONSUMER_KEY,
consumer_secret=NS_CONSUMER_SECRET,
token_key=NS_TOKEN_KEY,
token_secret=NS_TOKEN_SECRET,
caching_path="./netsuite_cache/",
)
logging.warn("Connected to NetSuite")
return nc
def download_file(nc: NetSuiteConnection, file_id: str) -> bytes:
logging.warn(f"Getting file content for ID {file_id}")
file = nc.files.get(internalId=file_id)
return file.content
要使用此代码,您需要拥有要下载的文件 ID。但是,您可以轻松地从 NetSuite 获取此列表(使用 SOAP API 或通过 UI 中的手动导出)。
注意:您需要从 NetSuite 管理员处获取
TOKEN_KEY
、TOKEN_SECRET
、CONSUMER_KEY
、CONSUMER_SECRET
和 NETSUITE_ACCOUNT
的详细信息。 有关如何生成这些的更多详细信息,请参阅 oracle 文档。